ExpertAdvisor

Author: sanyooooook
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Indicators Used
MACD Histogram
0 Views
0 Downloads
0 Favorites
ExpertAdvisor
ÿþ//+------------------------------------------------------------------+

//|                                                ExpertAdvisor.mq4 |

//|                                                      sanyooooook |

//|                                                 http://sn-bot.ru |

//+------------------------------------------------------------------+

#property copyright "sanyooooook"

#property link      "http://sn-bot.ru"

#property version   "1.00"

#property strict



extern int Magik=12345;//magic number

extern double Lot=0.01;

extern int PeriodMA_Fast=6,//the period fast MA

PeriodMA_Slow=24,//the period slow MA

Sig_Period=5;//period of the signal MA

extern int Slp=3;//Slippage

int Slippage=0;

//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  {

//---

   if(Lot<MarketInfo(_Symbol,MODE_MINLOT))Lot=MarketInfo(_Symbol,MODE_MINLOT);

   if(Lot>MarketInfo(_Symbol,MODE_MAXLOT))Lot=MarketInfo(_Symbol,MODE_MAXLOT);

   Slippage=Slp;

   if(_Digits==3 || _Digits==5)

     {

      Slippage=Slippage*10;

     }

//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

//---



  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

//---

   int total=0;//,tBuy=0,tSell=0;//,tBS=0,tSS=0,tBL=0,tSL=0;

   int Signal=Signal_();//?@>25@O5< A83=0;



   //1;>: ?@>25@:8 A8BC0F88 ?> >@45@0<

   for(int i=OrdersTotal()-1;i>=0;i--)

     {

      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()==Magik)

        {

         total++;

         int cmd=OrderType();

         switch(cmd)

           {

            case OP_BUY:

              {

               if(Signal==(-1))//5A;8 5ABL ?@>B82>?>;>6=89 A83=0; 4;O B5:CI53> >@45@0 B> 70:@K205<

                 {

                  if(OrderClose(OrderTicket(),OrderLots(),n(Bid),Slippage))

                    {

                     total--;

                     break;

                    }

                 }

               break;

              }

            case OP_SELL:

              {

               if(Signal==1)//5A;8 5ABL ?@>B82>?>;>6=89 A83=0; 4;O B5:CI53> >@45@0 B> 70:@K205<

                 {

                  if(OrderClose(OrderTicket(),OrderLots(),n(Ask),Slippage))

                    {

                     total--;

                     break;

                    }

                 }

               break;

              }

            default: break;

           }

        }

     } //&  1;>: ?@>25@:8 A8BC0F88 ?> >@45@0<



//0 >A=>20=88 ?>A;54=53> A83=0;0 8 B5:CI59 A8BC0F88 ?> >@45@0< ?@8=8<05< @5H5=85: 

//>B:@K20BL, 70:@K20BL, <>48D8F8@>20BL 8;8 >AB028BL 157 87<5=5=89 >@45@.

   if(total==0)//5A;8 =5B >B:@KBKE >45@>2

     {

      switch(Signal)

        {

         case 1://5A;8 A83=0; =0 ?>:C?:C

           {

            int a=OrderSend(_Symbol,OP_BUY,Lot,n(Ask),Slippage,0,0,"",Magik);

            break;

           }

         case(-1)://5A;8 A83=0; =0 ?@>406C

           {

            int a=OrderSend(_Symbol,OP_SELL,Lot,n(Bid),Slippage,0,0,"",Magik);

            break;

           }

        }

     }

  }//&    //0 >A=>20=88 ?>A;54=53> A83=0;0 8 B5:CI59 A8BC0F88 ?> >@45@0< ?@8=8<05< @5H5=85: 

              //>B:@K20BL, 70:@K20BL, <>48D8F8@>20BL 8;8 >AB028BL 157 87<5=5=89 >@45@.



//+------------------------------------------------------------------+

int Signal_()

  {

   double MACD=iMACD(NULL,0,PeriodMA_Fast,PeriodMA_Slow,Sig_Period,0,MODE_MAIN,1);

   if(MACD>=0)return(1);

   if(MACD<0)return(-1);

   return(0);

  }

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

double n(double v)

  {

   return(NormalizeDouble(v,_Digits));

  }

//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---