← К каталогу
Исходный код · ID 79

ea-2macrossover_v1-0.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный исходный код представляет собой торгового советника (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на основе анализа двух скользящих средних и формирования торговых сигналов на их пересечении. Продукт поддерживает открытие и закрытие рыночных позиций, управление рисками через стоп-лосс и тейк-профит, а также проверку минимального количества баров перед началом торговли.

Настройки программы

НастройкаОписание
Position size (LotSize) Размер позиции — Определяет объём торговой позиции в лотах.
Use next entry to close the trade (if false uses take profit) (UseEntryToExit) Использовать следующий вход для закрытия — При включённом значении позиция закрывается при появлении сигнала на противоположную сделку; при выключенном используются фиксированный стоп-лосс и тейк-профит.
Stop loss in pips (StopLoss) Стоп-лосс — Размер стоп-лосса в пунктах.
Take profit in pips (TakeProfit) Тейк-профит — Размер тейк-профита в пунктах.
Slippage in pips (Slippage) Проскальзывание — Допустимое проскальзывание цены при исполнении ордера в пунктах.
Enable trade (TradeEnabled) Включить торговлю — Общий переключатель, разрешающий или запрещающий отправку торговых операций.
Fast moving average period (MAFastPeriod) Период быстрой скользящей средней — Период расчёта быстрой скользящей средней.
Slow moving average period (MASlowPeriod) Период медленной скользящей средней — Период расчёта медленной скользящей средней.
Получить полный код

Поиск по коду файла

#property version       "1.00"
#property strict
#property description   "This Expert Advisor open orders at the crossover of two simple moving average (MA) indicators"
#property description   " "
#property description   "DISCLAIMER: This code comes with no guarantee, you can use it at your own risk"
#property description   "We recommend to test it first on a Demo Account"

/*
ENTRY BUY: when the fast MA crosses the slow from the bottom, both MA are going up
ENTRY SELL: when the fast MA crosses the slow from the top, both MA are going down
EXIT: Can be fixed pips (Stop Loss and Take Profit) or the entry signal for the next trade
Only 1 order at a time
*/

extern double LotSize=0.1;             //Position size

extern bool UseEntryToExit=true;       //Use next entry to close the trade (if false uses take profit)
extern double StopLoss=20;             //Stop loss in pips
extern double TakeProfit=50;           //Take profit in pips

extern int Slippage=2;                 //Slippage in pips

extern bool TradeEnabled=true;         //Enable trade

extern int MAFastPeriod=10;            //Fast moving average period
extern int MASlowPeriod=25;            //Slow moving average period

double ePoint;                         //Point normalized

bool CanOrder;                         //Check for risk management
bool CanOpenBuy;                       //Flag if there are buy orders open
bool CanOpenSell;                      //Flag if there are sell orders open

int OrderOpRetry=10;                   //Number of attempts to perform a trade operation
int SleepSecs=3;                       //Seconds to sleep if can't order
int MinBars=60;                        //Minimum bars in the graph to enable trading

double MinSL;
double MaxSL;
double TP;
double SL;
double Spread;
int Slip; 

void Initialize(){          
   RefreshRates();
   ePoint=Point;
   Slip=Slippage;
   if (MathMod(Digits,2)==1){
      ePoint*=10;
      Slip*=10;
   }
   TP=TakeProfit*ePoint;
   SL=StopLoss*ePoint;
   CanOrder=TradeEnabled;
   CanOpenBuy=true;
   CanOpenSell=true;
}

void CheckCanOrder(){            
   if( Bars<MinBars ){
      Print("INFO - Not enough Bars to trade");
      CanOrder=false;
   }
   OrdersOpen();
   return;
}

void OrdersOpen(){
   for( int i = 0 ; i < OrdersTotal() ; i++ ) {
      if( OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) == false ) {
         Print("ERROR - Unable to select the order - ",GetLastError());
         break;
      } 
      if( OrderSymbol()==Symbol() && OrderType() == OP_BUY) CanOpenBuy=false;
      if( OrderSymbol()==Symbol() && OrderType() == OP_SELL) CanOpenSell=false;
   }
   return;
}

void CloseAll(int Command){
   double ClosePrice=0;
   for( int i = 0 ; i < OrdersTotal() 

Показано первые 50% кода (символов: 4039)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
403,90₽ ≈ $4.94