Bazı küçük hataları tespit etmek için yardıma ihtiyacınız var. - sayfa 3

 

Uzun && ve || koşul, parçayı birçok zincirleme if ifadesine böldüm. Ayrıca OrderClosePrice() yerine MarketInfo(OrderSymbol() , MODE_ASK/BID) kullanmayı denedim.

Bu kısım hala bazen işe yaradı ve her zaman değil, hepinizin bana verdiği öneriyi de denedim ama yine de aynı oldu.

Sorunun nedeni bu mu yoksa başka bir şey mi olduğundan emin değilim. Ama bu deneme yanılma sonucunda fark ettiğim şey bu.

Görünüşe göre her zaman açılan emrin en alt kısmı, koşul sağlandığında BİLE stoploss'u taşımak istemedi (Uzun && ve || koşulu ve çok zincirli if ifadesi, ikisini de denedim).

EA ayarları:

Hesap 1 önce:


Hesap 1'den sonra:

Bu hesap için 1 , 1. ve 2. sıra if koşulunu/if + && ve || koşul, bu nedenle kaybı durdur hareket ettirilmez (ki bu doğrudur).

Ancak 3. sıra koşulu zaten karşıladı ve 10. sıraya kadar takip etmelidir, ancak zararı durdurma yalnızca BİR KEZ taşındı. (yanlış yanlış yanlış)

Bir kereden fazla hareket etmiş olmalı (benim hesabıma göre 50.0 pip olmalı, 5.0 pip değil).

Hesap 2 önce:

 

Hesap 2'den sonra:

 

Bu hesap 2 için, yalnızca 1. sipariş koşulu karşılamadı, bu nedenle yine stop loss taşınmadı (ki bu doğru). 2. ve 3. sıra koşulu karşıladı ve İŞTE TUHAF BÖLÜM.

2. sıra izi tam olarak 10. sıraya kadar, zararı durdur tam olarak 10 kez taşındı. Zararı durdur, o bireysel emrin açık fiyatından 50.0 pip'e taşındı (ki bu doğru).

Ancak 3. sipariş de koşulu karşıladı ve 3. sıraya kadar takip etmelidir, ancak yine stop loss yalnızca BİR KEZ taşındı. (yine yanlış :( )

Takip eden kısmın düzgün çalışmadığı her iki hesabın da son siparişte olduğunu fark ettiniz mi?

USDJPY işe yaradıysa, diğer tüm çiftlere uygulanabilmelidir. Bununla ne yapacağımdan emin değilim.

RaptorUK'un öğrettiği yerlerde iyi olması gerektiğini okuduğum bir döngü için geri sayım kullanıyorum. Geriye doğru saymak da sorun olmamalı.

Uzmanlar sekmesi de herhangi bir hata göstermedi ....

@.@ T_T

 
1. parkurdan sonra fiyatın geri çekilip onu durdurmadığından emin misiniz?
 
Kusura bakmayın ne demek istediğinizi tam olarak anlamadım... Hangi fiyatı kastediyorsunuz? 1. izden sonra durdurun mu?
 
Ne demek istediğini şimdi anlıyorum, ilk seferde alım satım sonuçlarını doğru okumadım
 
SDC :
Ne demek istediğini şimdi anlıyorum, ilk seferde alım satım sonuçlarını doğru okumadım
Hala neyin yanlış olduğu hakkında hiçbir fikrim yok .... Nerede yanıldığım hakkında bir fikrin var mı?
 
      if ( ( OrderStopLoss() == 0 ) || (OrderStopLoss() != 0 && OrderStopLoss() <= OrderOpenPrice() ) || ( OrderStopLoss() < ( OrderOpenPrice() + ( TrailingStop * Figure ) ) ) )
                              {
 

Denedim, hala aynı ffoorr ....

Bir çok kez denedim, hala her zaman düzgün şekilde değiştirilmeyen son sipariş .... Döngü için geri sayım bu soruna neden oluyor mu? Sanmıyorum ama neden düzgün çalışmıyor bilmiyorum...

 

juniorlcq :

Döngü için geri sayım bu soruna neden oluyor mu?


yukarı veya aşağı saymanız önemli değil ( sondaki stoploss)

geri saymanız gereken bir işlemi silmek veya kapatmak

 

Ben de yukarı doğru saymayı denedim, aynı sorun devam ediyor.

2. for döngüsü zaten sırayı değiştirdi mi ve tekrar tekrar seçmek zorunda kaldım mı?

İlk başta sırayı seçtim ve 2. for döngüsünde koşul karşılandı ve bu sırayı değiştirdi. Tekrar tekrar seçmem gerekir mi?

 

SiparişSeç

OrderSelect() işlevi, sipariş verilerini program ortamına ve OrderClosePrice() , OrderCloseTime() , OrderComment() , OrderCommission() , OrderExpiration() , OrderLots() , OrderMagicNumber() , OrderOpenPrice() , OrderOpenTime( çağrılarına kopyalar. ) , OrderPrint() , OrderProfit() , OrderStopLoss() , OrderSwap() , OrderSymbol() , OrderTakeProfit() , OrderTicket() , OrderType() işlevleri daha önce kopyalanan verileri döndürür. Bu, bazı durumlarda sipariş detaylarının (açılış fiyatı, SL/TP seviyeleri veya son kullanma tarihi) değişebileceği ve verilerin güncel olmayacağı anlamına gelir. Sipariş verilerini istemeden önce OrderSelect() işlevini çağırmanız şiddetle tavsiye edilir.