truescalperprofitlock.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «truescalperprofitlock.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
TrueScalperProfitLock — торговый советник для платформы MetaTrader 4, предназначенный для автоматической торговли на валютном рынке. Советник анализирует ценовые данные и технические индикаторы для формирования сигналов на открытие и закрытие позиций.
Основные возможности включают управление размером лота с учётом риска, систему фиксации безубыточности для защиты прибыли, а также методы контроля количества одновременных сделок. Советник поддерживает валидацию сигналов с помощью индикатора RSI и скользящих средних.
Встроенные средства позволяют ограничивать число открытых позиций на торговую пару и задавать индивидуальные параметры для определённых инструментов. Переключатель реальной торговли позволяет контролировать, использовать ли советник в живом торговом режиме.
Настройки программы
| Настройка | Описание |
|---|---|
| Lots | Размер лота для открытия позиции. |
| TakeProfit | Уровень фиксации прибыли для открытых позиций (в пунктах). |
| StopLoss | Уровень стоп-лосса для открытых позиций (в пунктах). |
| RSIMethodA | Метод A проверки RSI: переключатель включает анализ пересечения RSI с заданным пороговым значением. |
| RSIMethodB | Метод B проверки RSI: переключатель включает простой анализ текущего значения RSI относительно порога. |
| RSIValue | Пороговое значение индикатора RSI для определения направления сигнала. |
| AbandonMethodA | Метод A отказа от сделки: принудительное закрытие позиций после заданного количества баров. |
| AbandonMethodB | Метод B отказа от сделки: закрытие позиций с решением о направлении по индикаторам. |
| Abandon | Количество баров после которого срабатывает метод отказа от сделки. |
| MoneyManagement | Переключатель управления денежными средствами, определяющий автоматический расчёт размера лота. |
| Risk | Процент риска от баланса для расчёта размера лота при включённом управлении денежными средствами. |
| Slippage | Допустимое проскальзывание при исполнении ордеров (в пунктах). |
| UseProfitLock | Переключатель системы фиксации безубыточности, переводящий стоп-лосс на уровень открытия позиции при достижении заданной прибыли. |
| BreakEvenTrigger | Уровень в пунктах, при достижении которого активируется перевод стоп-лосса в безубыточную зону. |
| BreakEven | Расстояние в пунктах от цены открытия для установки стоп-лосса на уровне безубыточности. |
| LiveTrading | Переключатель реальной торговли, влияющий на ограничения размера лота. |
| maxTradesPerPair | Максимальное количество одновременных сделок на одну торговую пару. |
| MagicNumber | Идентификатор советника для фильтрации ордеров. |
Поиск по коду файла
extern double Lots=1.0;
extern int TakeProfit=44;
extern int StopLoss=90;
extern bool RSIMethodA=false;
extern bool RSIMethodB=true;
extern int RSIValue=50;
extern bool AbandonMethodA=true;
extern bool AbandonMethodB=false;
extern int Abandon=101;
extern bool MoneyManagement=true;
extern int Risk=2;
extern int Slippage=3;
extern bool UseProfitLock=true;
extern int BreakEvenTrigger=25;
extern int BreakEven=3;
extern bool LiveTrading=false;
extern bool AccountIsMini=false;
extern int maxTradesPerPair=1;
extern int MagicNumber=5432;
double lotMM;
bool BuySignal=false;
bool SetBuy=false;
bool SellSignal=false;
bool SetSell=false;
datetime bartime=0;
int bartick=0;
int TradeBars=0;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
bool SetLotsMM()
{
double MarginCutoff;
if(!AccountIsMini) MarginCutoff=1000;
if(AccountIsMini) MarginCutoff=100;
if(AccountFreeMargin() < MarginCutoff) return(false);
if(MoneyManagement)
{
lotMM=MathCeil(AccountBalance() * Risk/10000)/10;
if(lotMM < 0.1) lotMM=Lots;
if(lotMM > 1.0) lotMM=MathCeil(lotMM);
if(LiveTrading)
{
if(AccountIsMini) lotMM=lotMM * 10;
if(!AccountIsMini && lotMM < 1.0) lotMM=1.0;
}
if(lotMM > 100) lotMM=100;
}
else
{
lotMM=Lots; // Change MoneyManagement to 0 if you want the Lots parameter to be in effect
}
return(true);
}
bool RunOrderTriggerCalculations()
{
bool RSIPOS=false;
bool RSINEG=false;
double bullMA3=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);
double bearMA7=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);
double RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);
double RSI2=iRSI(Symbol(),0,2,PRICE_CLOSE,1);
if (RSIMethodA)
{
if(RSI>RSIValue && RSI2<RSIValue)
{
RSIPOS=true;
RSINEG=false;
}
else RSIPOS=false;
if(RSI<RSIValue && RSI2>RSIValue)
{
RSIPOS=false;
RSINEG=true;
}
else RSINEG=false;
}
if (RSIMethodB)
{
if(RSI>RSIValue)
{
RSIPOS=true;
RSINEG=false;
}
if(RSI<RSIValue)
{
RSIPOS=false;
RSINEG=true;
}
}
if ((bullMA3 > (bearMA7+Point)) && RSINEG)
{
BuySignal=true;
}
else BuySignal=false;
if ((bullMA3 < (bearMA7-Point)) && RSIPOS)
{
SellSignal=true;
}
else SellSignal=false;
return(true);
}
int OpenOrdersForThisEA()
{
int ofts=0;
for(int x=0;x<OrdersTotal();x++)
{
OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
ofts++;
}
}
return(ofts);
}
bool ProfitLockStop()
{
if(OpenOrdersForThisEA() > 0 )
{
for( int i=0; i < OrdersTotal(); i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()== MagicNumber)
{
if (Bid>=OrderOpenPrice() + BreakEvenTrigger*Point &&
OrderOpenPricПоказано первые 50% кода (символов: 4785)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.