Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 619

 

GetTickerHistory eklentisini MT-4'e yüklersem, başlar, ancak indirme Windows 7 x64'te devam etmez, harici dizinleri başka bir şekilde yüklemek mümkün mü?

Şimdiden teşekkürler.

 
001 :
Pozu zamana göre kapatma işlevi vardır.

Pozisyon kapalı, ancak her pozisyon için OrderClose hatası 138 veriyor

11:44:49 2000.01.10 07:00 Saat+iLowest_old EURUSD,H1: 1 açık 1.02940'tan 0.10 EURUSD sat tamam
11:44:49 2000.01.10 14:00 Zaman+iLowest_old EURUSD,H1: OrderClose hatası 138
11:44:49 2000.01.10 14:00 Zaman+iLowest_old EURUSD,H1: 1 kapanış 0.10 EURUSD'yi 1.02940'tan 1.022230'dan sat
11:44:49 2000.01.11 07:00 Saat+iLowest_old EURUSD,H1: Açık #2 1.02660'dan 0.10 EURUSD sat tamam
11:44:49 2000.01.11 14:00 Zaman+iLowest_old EURUSD,H1: OrderClose hatası 138
11:44:49 2000.01.11 14:00 Zaman+iLowest_old EURUSD,H1: 2. kapanış 0.10 EURUSD'yi 1.02660'tan 1.02890'dan sat
11:44:49 2000.01.13 07:00 Saat+iLowest_old EURUSD,H1: açık #3 1.02860'dan 0.10 EURUSD sat tamam

11:44:49 2000.01.13 14:00 Zaman+iLowest_old EURUSD,H1: OrderClose hatası 138 ,

Ne olabilirdi? En ilginci ise başka bir Expert Advisor'da her şeyin çalışması.

Ticari sunucu dönüş kodlarının işlenmesine sahip değilsiniz. Yani, yeniden teklifi işleme koymazsınız ve sadece 3 puanlık kayma yeterli değildir:

 int f=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (Ask, Digits ), 3 ,Red);

Peki, küçük şeyler:

Ters döngüde kapatın (aksi takdirde atlayacaktır):

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

Emir türü için kontrol yapılmalıdır, aksi takdirde bekleyen emirleri kapatmaya çalışacaktır:

 if (OrderType()> 1 ) continue ;
 
pu6ka :

SetIndexDrawBegin () işlevi vardır. Ama bir özelliği var, soldan sağa sayıyor. Genel olarak, Init'te kendinize SetIndexDrawBegin (0, Bars-p) satırını koyun ve ihtiyacınız olanın bu olup olmadığına bakın.
Göstergenin son çubuk sayısını saymasında herhangi bir sorun yoktur. Bu hareketlerin hesaplanacağı çubuk sayısının bir penceresini yapmam gerekiyor ve her çubukla pencere hareket edecek, önceki hesaplamadaki son çubuğu hesaplamalardan çıkararak yeni bir tane eklemem gerekiyor. "iMAOnArray" yumuşatma gibi bir şey, ancak ortalamayı gösterdiğinden düzgünleştirme uygun değildir, ancak toplam gereklidir.
 
artmedia70 :

Ticari sunucu dönüş kodlarının işlenmesine sahip değilsiniz. Yani, yeniden teklifi işleme koymazsınız ve sadece 3 puanlık kayma yeterli değildir:

Peki, küçük şeyler:

Ters döngüde kapatın (aksi takdirde atlayacaktır):

Emir türü için kontrol yapılmalıdır, aksi takdirde bekleyen emirleri kapatmaya çalışacaktır:



Çok teşekkürler! Şimdi deneyeceğim. Ve başka bir soru. Test cihazındaki yeniden fiyat teklifi alakalı mı? Test cihazımda kapanmıyor.
 
001 :

Çok teşekkürler! Şimdi deneyeceğim. Ve başka bir soru. Test cihazındaki yeniden fiyat teklifi alakalı mı? Test cihazımda kapanmıyor.
Ardından işlem emrindeki fiyata dikkat edin. Buy, Bid, Sell - Ask tarafından kapatılmıştır. Orada sipariş türü için bir kontrolünüz yok ve buna göre fiyat seçeneği yok - Sor veya Bid
 

Merhaba! Birkaç neredeyse aynı çoklu zaman çerçevesi RSI göstergesi indirdim. Herkeste aynı sorun var. Göstergeyi, daha yüksek bir zaman diliminin değeriyle daha düşük bir zaman dilimi çizelgesine koydum. Test cihazında, önceden yüklenmiş veriler üzerinde mükemmel bir şekilde işlenir, ancak test etmeye başlarsanız, işleme durur. Ayrıca gerçek bir grafik üzerinde bir sinyal çizer ancak gerçek bir grafiğin her bir çubuğunda gösterge çizgisinin değerleri farklıdır. Yani, önceden yüklenmiş verilerde render bir merdivenle gider ve gerçek zamanlı olarak yüklenen verilerde render farklı şekilde gerçekleşir. Göstergenin hem gerçek zamanlı olarak hem de test cihazında aynı merdiveni çizmesi için hangi değişikliklerin yapılması gerektiğini söyleyin.

Gösterge kodu ekteki dosyadadır.

Teşekkür ederim.

Dosyalar:
mtf_rsi.mq4  3 kb
 
Merhaba, danışmanı değiştirirken 1 "Hata yok, ancak sonuç bilinmiyor" hatası veriyor. Hata 1
 void ControlBuylimit(){
   for ( int i= OrdersTotal (); i>= 0 ; i--){
     if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)){
       if (OrderMagicNumber()==Magic){
         if (OrderSymbol()== Symbol ()){
           if (OrderType()==OP_BUYLIMIT){
             if (OrderComment()== "MA_1" ){
               if (OrderOpenPrice()!=ma1){
                 int cnt= 0 ;
                 bool res;
                 while (cnt<= 5 ){
                  res=OrderModify(OrderTicket(), NormalizeDouble (ma1, Digits ), NormalizeDouble (ma1, Digits )-StopLoss* Point , NormalizeDouble (ma1, Digits )+TakeProfit* Point , 0 ,clrNONE);
                   if (!res){
                     int answ= 0 ;
                    answ=ERRORS( GetLastError (),OrderTicket());
                     if (answ== 1 ){ continue ; cnt++;}
                     if (answ== 2 ) break ;
                  }
                   if (res) break ;
                }
              }
            }
             if (OrderComment()== "MA_2" ){
               if (OrderOpenPrice()!=ma2){
                 int cnt= 0 ;
                 bool res;
                 while (cnt<= 5 ){
                  res=OrderModify(OrderTicket(), NormalizeDouble (ma2, Digits ), NormalizeDouble (ma2, Digits )-StopLoss* Point , NormalizeDouble (ma2, Digits )+TakeProfit* Point , 0 ,clrNONE);
                   if (!res){
                     int answ= 0 ;
                    answ=ERRORS( GetLastError (),OrderTicket());
                     if (answ== 1 ){ continue ; cnt++;}
                     if (answ== 2 ) break ;
                  }
                   if (res) break ;
                }
              }
            }
          }
        }
      }
      
    }
  }
}
 
Forexman77 :
Göstergenin son çubuk sayısını saymasında herhangi bir sorun yoktur. Bu hareketlerin hesaplanacağı çubuk sayısının bir penceresini yapmam gerekiyor ve her çubukla pencere hareket edecek, önceki hesaplamadaki son çubuğu hesaplamalardan çıkararak yeni bir tane eklemem gerekiyor. "iMAOnArray" yumuşatma gibi bir şey, ancak ortalamayı gösterdiğinden düzgünleştirme uygun değildir, ancak toplam gereklidir.

Yeni çubukların ortaya çıkmasıyla bu göstergeyi M1'e atın , soldaki timsah çizgilerinin "üzerine yazılır". Bu gerekli mi?

Dosyalar:
 
Example2 :
Merhaba, danışmanı değiştirirken 1 "Hata yok, ancak sonuç bilinmiyor" hatası veriyor.

Büyük olasılıkla, siparişte zaten kayıtlı olan eski fiyatla değişiklik yapıyorsunuz.
 
pu6ka :

Büyük olasılıkla, siparişte zaten kayıtlı olan eski fiyatla değişiklik yapıyorsunuz.


Ancak (OrderOpenPrice()!=ma2) olup olmadığına dair bir kontrol var.