Горю желанием, понять программирование MQL.

 
Всем Привет,
в этой ветке мне хотелось бы, помощи в разъяснение от и до построение советника. Для таких как я, знания о програмирование = 0, начал читать Си для чайников.
Но не использую компайлер Си, пытаюсь пременить принцып сразу на МQL. Так что кому не лень жду вашей критики, желательно сразу с разъяснением по блокам.
Чтобы не было перегрузки информации. Еще одна огромная просьба, не пишите сразу весь код на систему. От этого мне будет (толку=0).
начал пробовать что то писать, с вытяжками с 'Пример создания эксперта' недели 3 назад, вот что получилось!
Целый ужас для Брокера, открывает позиций пока Брокер не говорит ккккватит ))
//+------------------------------------------------------------------+
//|                                                          vlh.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net/"
 
//---- input parameters
 
extern double TakeProfit = 100;
extern double StopLoss = 40;
extern double TrailingStop = 25;
extern double Lots = 1.0;
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int cnt=0, ticket, total;
// первичные проверки данных
// важно удостовериться что эксперт работает на нормальном графике и
// пользователь правильно выставил внешние переменные (Lots, StopLoss,
// TakeProfit, TrailingStop)
      
   total=OrdersTotal();
   if(total<1) 
     {
      // нет ни одного открытого ордера
      // проверяем на возможность встать в длинную позицию (BUY)
      if(Open[1]<Close[1])
        { 
          ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,Ask-StopLoss*Point,16384,0,Red);
                          
          if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
               Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
      // проверяем на возможность встать в короткую позицию (SELL)
      if(Open[1]>Close[1])
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid+StopLoss*Point,Bid-TakeProfit*Point,16384,0,Red);
                         
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
               Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0); 
        }
      return(0);
     }
   // переходим к важной части эксперта - контролю открытых позиций
   // 'важно правильно войти в рынок, но выйти - еще важнее...'
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // это открытая позиция? OP_BUY или OP_SELL 
         OrderSymbol()==Symbol())  // инструмент совпадает?
        {
         if(OrderType()==OP_BUY)   // открыта длинная позиция
           {   
            // проверим - может можно/нужно уже трейлинг стоп ставить?
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,
                                 OrderTakeProfit(),0,Yellow);
                     return(0);
                    }
                 }
              }
           }
         else // иначе это короткая позиция
           {
       
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,
                                 OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
// конец.
//+------------------------------------------------------------------+
Система должна работать по следущим критериям,
- на 4 часовом периоде
- негативная свеча [1] сигнал вниз, входим Sell. И таким образом открываем, с последованием негативной свечи 1 ордер, максимально 3 ордера. С каждым ордером понижаем ордер на 0.3 лота.
(3 ордера=2.1 лота)
- тем же самым способом наверх.
- максимум 6 ордеров, 3 бай и 3 селл.
- позже хотел поставить чтоб работала на 3 парах.
 

Советую индивидуальные курсы. Mikael@miktrade.com

 
Попробуйте почитать http://forum.radioforex.ru/viewtopic.php?t=1286
 
Почитай вот этот учебник
Файлы:
mql4.zip  269 kb
 
Luptator:
Почитай вот этот учебник
Большое спасибо. Обязательно начну учить.
 
MikTrade:

Советую индивидуальные курсы. Mikael@miktrade.com

Спасибо за предложение, это наверника самый лучший способ. Вдруг что вернусь к вашему предложению.
 
Scriptong:
Попробуйте почитать http://forum.radioforex.ru/viewtopic.php?t=1286
Вот это очень интересно, буду присутствовать. Спасибо.
 
Не подскажете, что на общий взгляд у меня не правильно??
 
Можете и ко мне на сайт заглянуть в раздел статьи, если хотите понять, как пишутся индикаторы и эксперты для автоматической торговли.