Ücretsiz bir danışman yazacağım - sayfa 17

 
Merhaba, MQL4 dilini öğrenmeye başladım.Başlamak için MACD Sample EA'yı aldım. Parçalara ayırdı. Her şeyi çözmüş gibi görünüyor, ancak Demo'da aynı anda birkaç döviz çiftinde çalışmasını sağlayamıyorum. Eğer terminalde zaten bir pozisyon açılmışsa (manuel veya danışman tarafından) çalışmayacaktır.Bildiğim her şeyi zaten denedim. Ancak bilgi yeterli değil, lütfen nelerin eklenmesi veya düzeltilmesi gerektiğini söyleyin.
 
igor.malish :
Merhaba, MQL4 dilini öğrenmeye başladım.Başlamak için MACD Sample EA'yı aldım. Parçalara ayırdı. Her şeyi çözmüş gibi görünüyor, ancak Demo'da aynı anda birkaç döviz çiftinde çalışmasını sağlayamıyorum. Eğer terminalde zaten bir pozisyon açılmışsa (manuel veya danışman tarafından) çalışmayacaktır.Bildiğim her şeyi zaten denedim. Ancak bilgi yeterli değil, lütfen nelerin eklenmesi veya düzeltilmesi gerektiğini söyleyin.

MACD Sample, birden fazla enstrümanın ticareti için tasarlanmamıştır.

total= OrdersTotal ();

   if ( total< 1 )

     {...
Bu durumda, herhangi bir enstrüman için en az bir tanesi zaten açılmışsa, anlaşmaların açılması pratik olarak yasaktır.
 
dimeon :

MACD Sample, birden fazla enstrümanla işlem yapmak için tasarlanmamıştır.

Bu durumda, herhangi bir enstrüman için en az bir tanesi zaten açılmışsa, anlaşmaların açılması pratik olarak yasaktır.
Benzer bir görevim vardı, ancak günde bir işlem için. Onlar. koşul yalnızca OrdersTotal() değil, aynı zamanda kapalı olanların geçmişinden de alınır.
 
OrdersTotal , OrderSymbol ve OrderMagicNumber'ı bir şekilde birbirine bağlamak mümkün müdür?
 
igor.malish :
OrdersTotal, OrderSymbol ve OrderMagicNumber'ı bir şekilde bağlamak mümkün müdür?
Salak soru.
 
Selamlar. Ama birisi danışmanımı yeni mql'ye uyarlamayı taahhüt edecek mi? (#property strict) Sonra gelişir ve işlevsellik gelişir, ancak yazıldığı dil eskidir. mql5'e geçmek istersem daha fazla değiştirmek çok zor olacak. Bu Uzman Danışman, ZigZaHod v1.1'in sonraki bir modifikasyonudur. Gezinebilmem ve iyileştirebilmem için minimum değişiklik gerektiriyor. Bunda aktif rol almaya hazır. Neyin değiştirilmesi gerektiğine dair anlayıştan yoksunum.
 

Hatayı düzeltmeye yardımcı olun: fikre göre, danışman günde bir kez çalışmalıdır, bu yeni bir günün başladığı zamandır. sabah saat birde. yüksek ve düşük olmak üzere iki bekleyen emir açmalıdır

önceki mum. yani 00:00'da kapanan bir mumla. ertesi günün başlangıcına kadar yapacak başka bir şey yok. Neyi yanlış yapıyorum?


 extern string Times = "Time" ;
extern int StartHour    = 1 ;
extern int TakeProfit   = 50 ;
extern int StopLoss     = 50 ;
extern int Lots         = 1 ;

void OnTick ()
{ 
   static bool IsFirstTick = true ;
   static int ticket = 0 ;
   int h=TimeHour( TimeCurrent ());
   Alert ( "TimeHor: " , h);
   if (Hour() == StartHour)
   {
     if (IsFirstTick == true )
      IsFirstTick - false ;
      
       bool res;
      res= OrderSelect (ticket, SELECT_BY_TICKET);
       if (res == true )
      { 
         if (OrderCloseTime() == 0 )
         {
             bool res2;
            res2 = OrderClose(ticket, Lots, OrderClosePrice(), 10 );
            
             if (res2 == false )
            {
               Alert ( "Error Closing Order #" , ticket);
               }
         }   
      }
       if (Open[ 0 ] < Open[StartHour])
      {
         ticket = OrderSend ( Symbol (), OP_BUYLIMIT, Lots, High[ 1 ], 10 , Low[ 1 ]-StopLoss* Point , High[ 1 ]+TakeProfit* Point , "Set bu ForexRobot" );
         if (ticket < 0 )
         {
           Alert ( "Error Sending Order!" );
         }  
       }
       else
       {
         ticket = OrderSend ( Symbol (), OP_SELLLIMIT, Lots, Low[ 1 ], 10 , High[ 1 ]+StopLoss* Point , Low[ 1 ]+TakeProfit* Point , "Set bu ForexRobot" );
         if (ticket < 0 )
         {
           Alert ( "Error Sending Order!" );
         } 
    }   
}
 
MIR_KAZAN :

Hatayı düzeltmeye yardımcı olun: fikre göre, danışman günde bir kez çalışmalıdır, bu yeni bir günün başladığı zamandır. sabah saat birde. yüksek ve düşük olmak üzere iki bekleyen emir açmalıdır

önceki mum. yani 00:00'da kapanan bir mumla. ertesi günün başlangıcına kadar yapacak başka bir şey yok. Neyi yanlış yapıyorum?


Kodu eklerken lütfen yerleşik forum özelliklerini kullanın: Kodu foruma doğru şekilde yerleştirin
 
barabashkakvn :
Kodu eklerken lütfen yerleşik forum özelliklerini kullanın: Kodu foruma doğru şekilde yerleştirin
Açık.
 
MIR_KAZAN :

Hatayı düzeltmeye yardımcı olun: fikre göre, danışman günde bir kez çalışmalıdır, bu yeni bir günün başladığı zamandır. sabah saat birde. yüksek ve düşük olmak üzere iki bekleyen emir açmalıdır

önceki mum. yani 00:00'da kapanan bir mumla. ertesi günün başlangıcına kadar yapacak başka bir şey yok. Neyi yanlış yapıyorum?


İşte bir yazım hatası:

      IsFirstTick - false ;

olmalı =