Yarım lotları kapatmak. - sayfa 5

 
DomGilberto :

Bekleyen bir "OP_BUYSTOP" emri verdim ama bunun "OP_BUY" olarak tetiklendiğinde değişeceği izlenimine kapıldım.

Tetiklenmiş olsaydı sipariş türünün "OP_BUY" olacağını düşündüm?

Sonuçta, sipariş tetiklendiğinde yalnızca BİR KEZ ilgileniyorum?

Bu parantezler neden kafa karıştırıyor? Sol parantezin nerede olduğunu mu kastediyorsunuz? Eğer öyleyse, bu konuda defalarca düzeltildiğim için bu bireysel bir şey gibi görünüyor?

Parantezlere gerek yoktur, bu nedenle orada olmaları, kodunuzu (ben) okumaya çalışan diğer kişiler için kafa karışıklığına neden olabilir.


Yalnızca bir BUYSTOP'unuz varsa, kodunuz bir OP_BUY olmadığı için hiçbir şey yapmaz. . .

DomGilberto :
Hmmm, hala @ "Close_Half_Order" kapatmak istemiyor mu? Herhangi bir hata mesajı da almıyor musunuz?

bu nedenle, Sipariş hala beklemedeyken bu mantıklıdır. . .

Siparişinizde doğru Sihirli Numara var mı?

 
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: Close_Half_Order Last Error = 4108
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: OrderClose error 4108
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: pending order # 9 cannot be closed
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.18
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: Order Ticker Number = 9
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.09000
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.01000
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000
2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.37931
" if (OrderType()==OP_BUY)" satırını kaldırdım - Bu, testten sonraki günlükteki yeni çıktılar mı? Geçersiz Bilet... (bununla ilgili 101 soru sorduğum için üzgünüm!)
 
DomGilberto :
" if (OrderType()==OP_BUY)" satırını kaldırdım - Bu, testten sonraki günlükteki yeni çıktılar mı? Geçersiz Bilet... (bununla ilgili 101 soru sorduğum için üzgünüm!)

Raptorİngiltere :

Bekleyen bir Emri kapatmıyorsunuz, hata raporlamanız size ne söyledi?

 2013.07 . 31 17 : 45 : 46      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: pending order # 9 cannot be closed

Bekleyen bir siparişi kapatamazsınız, silinir.

 
Ama bekleyen bir siparişi kapatmaya çalışmıyorum? Bekleyen bir "OP_BUY" üzerindeki lotların yarısını kapatmaya çalışıyorum...? Açıkçası burada bir şeyleri özlüyorum ...
 
DomGilberto :
Ama bekleyen bir siparişi kapatmaya çalışmıyorum? Bekleyen bir "OP_BUY" üzerindeki lotların yarısını kapatmaya çalışıyorum...? Açıkçası burada bir şeyleri özlüyorum ...
DomGilberto :

Bekleyen bir "OP_BUYSTOP" emri verdim ama bunun "OP_BUY" olarak tetiklendiğinde değişeceği izlenimine kapıldım.

Bir OP_BUYSTOP'unuz varsa, kodunuz hiçbir şey yapmıyor, ki bu sorun değil. OP_BUYSTOP tetiklendiğinde OP_BUY'a dönüşür ve kodunuz konum boyutunun yarısını kapatmalıdır. . . doğru sembole ve Sihirli Numaraya sahip olduğu sürece, öyle mi? Sanırım aksi halde kod bekleyen siparişi kapatmaya çalışmazdı. . . peki ya OpenOrdersThisPair( Symbol ()) == 1 ?
 
Eğer koddan " OpenOrdersThisPair( Symbol ()) == 1" öğesini kaldırırsam , günlük içindeki mesajlar tamamen aynıdır... Şaşırdım...?
 
DomGilberto :
Eğer koddan " OpenOrdersThisPair( Symbol ()) == 1" öğesini kaldırırsam, günlük içindeki mesajlar tamamen aynıdır... Şaşırdım...?

Biraz daha Print() ifadesi ekleme zamanı, henüz kontrol etmediğiniz her şeyi kontrol edin. . . sadece şaşkınsın çünkü nedenini bilmiyorsun, nedenini öğren ve artık şaşırmayacaksın.

Nedenini öğrendiğinizde ve artık Günlük/Uzmanlar sekmesine yazdırmak istemediğiniz tüm bu Print() ifadelerine sahip olduğunuzda, bunları açıp kapatmak için güzel bir yol sağlayacak olan şuna bir göz atın: https://www .mql5.com/en/forum/135168/page2

 

Ah, bu arada, bunu yapamazsın. . .

 bool Close_Half_Order = OrderClose(OrderTicket(), half, FirstTarget_Buy, 3 , CLR_NONE );

. . . FirstTarget_Buy olmadıkça == Bid Sadece Bid kullanma olasılığını ortadan kaldırmak için. Bir Alış bir Sell ile kapatılır, bir Satış Bid'de gerçekleştirilir.

 
Tamam, oraya "Teklif" koyarsam, lotlar şimdi kapatılıyor, ancak doğru fiyattan değil ve herhangi bir pozisyon sırasında birkaç yarıyı kapatıyor gibi görünüyor. (daha fazlası %100 hedef fiyat alanının ilk 2/3'üne doğru... hepsi kapandıkları fiyatla aynı değil...)

" FirstTarget_Buy" da pozisyonu nasıl kapatabilirim?
 
DomGilberto :
Tamam, oraya "Teklif" koyarsam, lotlar şimdi kapatılıyor, ancak doğru fiyattan değil ve herhangi bir pozisyon sırasında birkaç yarıyı kapatıyor gibi görünüyor. (daha fazlası %100 hedef fiyat alanının ilk 2/3'üne doğru... hepsi kapandıkları fiyatla aynı değil...)

" FirstTarget_Buy" da pozisyonu nasıl kapatabilirim?

Bid and Ask (Buy and Sell) dışında herhangi bir fiyattan OrderClose() işlemi yapamazsınız. . . bu kadar basit, yapamazsın.

Ne yapabilirsin:

her biri pozisyonun yarısı için iki işlem açın ve her birine farklı bir TP verin

veya

Bid/Ask fiyatını izleyin ve " FirstTarget_Buy" a ulaştığında veya geçtiğinde Bid/Ask'teki ticaretin yarısını kapatın