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

Kijun Sen Robot

ksrobot_1_5_h1_v1.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Kijun Sen Robot — торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует ценовые данные с использованием индикатора Ichimoku Kinko Hyo и скользящей средней EMA для формирования торговых сигналов на покупку и продажу. Работает в ограниченное время суток и допускает только одну открытую позицию одновременно.

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

НастройкаОписание
StopLoss Стоп-лосс — Фиксирует максимальный убыток позиции в пунктах от цены входа
BreakEven Безубыток — Переводит стоп-лосс в точку безубыточности при достижении указанного количества пунктов прибыли
TrailingStop Трейл-стоп — Двигает стоп-лосс вслед за ценой при достижении указанного отступа в пунктах
MAfilter Фильтр MA — Задаёт минимальное расстояние между линией Kijun Sen и скользящей средней для подтверждения сигнала
UseOptimizedValues Использовать оптимизированные значения — Переключает применение предустановленных параметров для конкретных валютных пар
Lots Лоты — Определяет объём торговой позиции в лотах
Получить полный код

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

/* expert specific parameters */
#define EXPERT_COLOR    Yellow
#define EXPERT_STRING   "Kijun Sen Robot"
#define EXPERT_MAGIC    13
#define UP       1
#define DOWN    -1
#define NEUTRAL  0
/*  
    Optimized results 
    GBP/USD:
    4.38	1000.00	8.38%	StopLoss=50 	BreakEven=9 TrailingStop=10 	MAfilter=6 	TakeProfit=120
    EUR/USD:
    2.68	1520.00	12.24%	StopLoss=60 	BreakEven=9 TrailingStop=6 	   MAfilter=6 	TakeProfit=120      
*/
int      MaxOpenPositions=1;
/* Default parameters. */
int      TakeProfit     =120;  /* default 120 */
extern int      StopLoss       =50;   /* 50  very imporant to allow for a substaintial movement in the other direction */
extern int      BreakEven      =9;    /* default = 9 */
extern int      TrailingStop   =10;   /* default 10 */
extern int      MAfilter       =6;    /* MA must be at least 6 pips away from KS in order to be valid */
extern bool     UseOptimizedValues=true;
/* MM */
extern double   Lots   =1;

int TenkanSen          =6;
int KijunSen           =12;
int Senkou             =24;
/* globals */
double lastbid         =0.0;
double lastask         =0.0;
double longcross       =0.0;
double shortcross      =0.0;
double longentry       =0.0;
double shortentry      =0.0;
int daystart           =7; /* 5AM GMT */
int dayend             =19;/* 5PM GMT */
int MAdir              =NEUTRAL;
int precision          =4;
int lastbar            =0;
bool newbar            =false;

  int init()  
  {
      // код доступен только после оплаты
   }

int deinit()
{
   return(0);  
}
/* expert specific utility functions */

  int SymbolPrecision() 
  {
   return(MarketInfo(Symbol(), MODE_DIGITS));
  }

int OpenPosition()
  {
   double KS      =iIchimoku(NULL, 0, TenkanSen, KijunSen, Senkou, MODE_KIJUNSEN, 0);
   double KS1     =iIchimoku(NULL, 0, TenkanSen, KijunSen, Senkou, MODE_KIJUNSEN, 1);
   double KS2     =iIchimoku(NULL, 0, TenkanSen, KijunSen, Senkou, MODE_KIJUNSEN, 2);
   double Ema20   =iMA(NULL,0,20,0,MODE_LWMA,PRICE_CLOSE,0);
   double PEma20  =iMA(NULL,0,20,0,MODE_LWMA,PRICE_CLOSE,1);
   double PSAR    =iSAR(NULL, 0, 0.02, 0.2, 0); /* fast parabolic for tight exits */

   if (lastbid==0.0) lastbid=Bid;
   if (lastask==0.0) lastask=Ask;
    /* Make sure the time is right */
   if(Hour() < daystart || Hour() > dayend-1)return(0);
    /* KS cross */
     if(Open[0] < KS && lastbid < KS && Bid > KS && longcross==0 && KS>=KS2) 
     {
        /* the cross is only interesting if the KS line is above the MA  */
        if(Ema20 < KS - MAfilter * Point)
        {
         longcross=KS;
         shortcross=0;
        }
     }
     if(Open[0] > KS && lastask > KS && Ask < KS && shortcross==0 && KS<=KS2) 
     {
        /* the cross is only interesting if the KS line is under the MA  */
        if(Ema20 > KS + MAfilter * Point)
        {
         shortcross=KS;
         longcross=0;
        }
     }
    /* check MA direction */
     if(PEma20 < Ema20 )
     {
      MAdir=UP;
     }
     if(PEma20 > Ema20 )
     {
      MAdir=DOWN;
     }
    /* once the MA is pointing in the right direction set the the entry price to be the current KS */
     if (MAdir==UP && longcross!=0 && longentry==0)
     {
      longentry=NormalizeDouble( KS, precision );
      return(1);
     }
    /* once the MA is pointing in the right direction set the the entry price to be the current KS */
     if (MAdir==DOWN && shortcross!=0 && shortentry==0)
     {
      shortentry=NormalizeDouble( KS, precision );
      return(-1);
     }
   lastbid=Bid;
   lastask=Ask;

   return(0);
  }

int ClosePosition()
  {
   double PEma20  =iMA(NULL,0,20,0,MODE_LWMA,PRICE_CLOSE,1);
   double PPEma20 =iMA(NULL,0,20,0,MODE_LWMA,PRICE_CLOSE,2);

     if(OrderType()==OP_BUY )
     {
        if (newbar && PEma20 < PPEma20 && OrderStopLoss() < OrderOpenPrice() )
        {
         return(1);
        }
     }
     if(OrderType()==OP_SELL )
     {
        if (newbar && PEma20 > PPEma20 && OrderStopLoss() > OrderOpenPrice() )
        {
         return(-1);
        }
     }

   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }
   int cnt, experttickets, ticket, total, i, pos, action=0, method;
   double hardstop;
   datetime ticketexpiration=0;
    /* make sure that the char is valid */
     if (Bars<100)
     {
      Print("Invalid chart: less than 100 bars!");
      return(-1);
     }
     if(( Hour() < daystart || Hour() > dayend-1))
     {
      Comment("\nTrading halted. (will start again at ", daystart, " AM )\n");
      }
       else 
      {
      Comment("\nExpert is active. (will halt at ", dayend, " PM )\n");
      Comment("\nTS = ", TrailingStop, " BE = ", BreakEven, " SL = ", StopLoss, " MAfilter  = ", MAfilter,"\n");
     }
   total=OrdersTotal();
     if (Time[0]==lastbar) 
     {
      newbar=false;
      }
       else 
      {
      lastbar=Time[0];
      newbar=true;
     }
    /* Only allow one open position at a time (per expert)- so if there is an open position - do not open another one. */
     for(cnt=0,experttickets=0;cnt<total;cnt++) 
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
        if(OrderSymbol()==Symbol() && OrderMagicNumber()==EXPERT_MAGIC) 
        {
         experttickets=experttickets+1;
        }
     }
     if(experttickets<MaxOpenPositions) 
     {
    

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

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

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

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

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

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

Стоимость полного кода
719,20₽ ≈ $8.79