[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 444

 
Elena56 :

Optimizasyon sürecinde, görselleştirme öğesini işaretliyorum ve başlat'a basıyorum, bundan sonra strateji test cihazı kayboluyor, görselleştirme işareti kayboluyor ve test çok yavaş bir hızda gerçekleşiyor. Bu ne anlama geliyor? alıntılar yüklendi ve güncellendi. (MT4)

bu optimizasyon, test değil.
 

beyler lütfen yardım edin Bir sorunum var - siparişin sonunda metni yazmak istemiyorum, nedenini söyle lütfen

   OrderSelect (otbH,SELECT_BY_TICKET);
   if ( OrderSelect (otbH,SELECT_BY_TICKET)==true)
   { 
       Print ( "1" );
       if ( OrderCloseTime ()> 0 )
      {
         Print ( "2" );
         ObjectCreate ( "ndp" + OrderTicket (), OBJ_TEXT , 0 , 0 , 0 );
         ObjectSet ( "ndp" + OrderTicket (),OBJPROP_TIME1, TimeCurrent ());
         ObjectSet ( "ndp" + OrderTicket (),OBJPROP_PRICE1, OrderClosePrice ());
         ObjectSetText ( "ndp" + OrderTicket (), OrderProfit (), 5 , "Arial" , Aqua );
      } 
   }    
   
   

otbH bilet numarasıdır. En ilginç olanı ise "1" rakamını basıyor ama "2" rakamını reddediyor... Sebebini anlayamıyorum ... çünkü sırayı o seçiyor ... açıkla lütfen

 
CLAIN :

beyler lütfen yardım edin Bir sorunum var - siparişin sonunda metni yazmak istemiyorum, nedenini söyle lütfen

otbH bilet numarasıdır. En ilginç olanı ise "1" rakamını basıyor ama "2" rakamını reddediyor... Sebebini anlayamıyorum ... çünkü sırayı o seçiyor ... açıkla lütfen


Sipariş kapandı mı, kapanmadı mı?
 

Emir önce açılır, sonra kapanır.

Bu komut dosyası her onay işareti üzerinde çalıştırılır, bu nedenle bir noktada kesinlikle kapatılacaktır...

İlk önce bilete göre bir sipariş seçiyorum - OrderSelect(otbH,SELECT_BY_TICKET); "Nerede olursa olsun onu seçecek, değil mi?"

ve sonra kapalı mı açık mı olduğunu belirlemeli ... ama nedense bu olmuyor ...

 
CLAIN :

Emir önce açılır, sonra kapanır.

Bu komut dosyası her onay işareti üzerinde çalıştırılır, bu nedenle bir noktada kesinlikle kapatılacaktır...

İlk önce bilete göre bir sipariş seçiyorum - OrderSelect(otbH,SELECT_BY_TICKET); "Nerede olursa olsun onu seçecek, değil mi?"

ve sonra kapalı mı açık mı olduğunu belirlemeli ... ama nedense bu olmuyor ...


Kapalı bir sipariş seçmeyi deneyin
 
söyle bana nasıl yapamam
 
CLAIN :
söyle bana nasıl yapamam

   int total= OrdersHistoryTotal ();
   for ( int i=total- 1 ;i>= 0 ;i--) 
   {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY))
      {
         if ( OrderSymbol ()== Symbol ())
         {
             if ( OrderMagicNumber ()==MagicNumber )
            {
               // Ваши действия с ордером
            }
         }
      }
   }
 

Soru şu ki - açılış fiyatı iki hareketli ortalamanın (abartılı) kesiştiği noktada gerçekleştirilir, testte - her şey yolundadır, ancak bir demo attığınızda, açılışlar yanlıştır (çünkü bir çubuğun oluşumu sırasında, içindeki fiyat min'den maks'a atlar), bu nedenle, kavşağı ancak çubuk oluşturulduktan sonra hesaba katmak fikri vardır, yani. bar oluşturuldu (kavşağı gördük) ve ondan sonra bir sonrakinde kavşağı dikkate alarak pazara giriyoruz.

 
DOCTORS :

Soru şu ki - açılış fiyatı iki hareketli ortalamanın (abartılı) kesiştiği noktada gerçekleştirilir, testte - her şey yolundadır, ancak bir demo attığınızda, açılışlar yanlıştır (çünkü bir çubuğun oluşumu sırasında, içindeki fiyat min'den maks'a atlar), bu nedenle, kavşağı ancak çubuk oluşturulduktan sonra hesaba katmak fikri vardır, yani. bar oluşturuldu (kavşağı gördük) ve ondan sonra bir sonrakinde kavşağı dikkate alarak pazara giriyoruz.

Test cihazında her şeyin yolunda gitmesi garip - test cihazında da sıfır çubuğu oluşturulmaz ve ayrıca yanlış geçişler olacaktır.

1. ve 2. çubuklarda kavşakları arayın. İkinci MA1'de <= MA2 ve birinci MA1 > MA2'de ise MA1, MA2'yi aşağıdan yukarıya geçti. Yukarıdan aşağıya için - tersi.

Sadece çıkararak karşılaştırma yapın:

   double MA1= iMA ( Symbol (), Period (),ma_period,ma_shift,ma_method,applied_price , 1 );
   double MA2= iMA ( Symbol (), Period (),ma_period,ma_shift,ma_method,applied_price, 2 );
   if ( NormalizeDouble (MA1-MA2, Digits )<= 0 )
   if ( NormalizeDouble (MA1-MA2, Digits )> 0 ) {
       // MA1 пересекла MA2 снизу-вверх
      }

Yukarıdan aşağıya için - tersi.

Sıfırla değil, bazı minimum değerlerle karşılaştırabilirsiniz, örneğin 0,1*Puan

 
artmedia70 :

Test cihazında her şeyin yolunda gitmesi garip - test cihazında da sıfır çubuğu oluşturulmaz ve ayrıca yanlış geçişler olacaktır.

1. ve 2. çubuklarda kavşakları arayın. İkinci MA1'de <= MA2 ve birinci MA1 > MA2'de ise MA1, MA2'yi aşağıdan yukarıya geçti. Yukarıdan aşağıya için - tersi.

Sadece çıkararak karşılaştırma yapın:

Yukarıdan aşağıya için - tersi.

Sıfırla değil, bazı minimum değerlerle karşılaştırabilirsiniz, örneğin 0,1*Puan


Çok teşekkürler!