Yarım lotları kapatmak. - sayfa 6

 
"if(FirstTarget_Buy == Bid)" koyarsam mı demek istiyorsun? (Açıkçası öyle değil çünkü çalışmıyor.)
 
DomGilberto :
"if(FirstTarget_Buy == Bid)" koyarsam mı demek istiyorsun? (Açıkçası öyle değil çünkü çalışmıyor.)

Veya benzeri bir şey. . .

 if (Bid >= FirstTarget_Buy + ( Point / 2 ) )
   {
   //  close the Order
   }

. . . çiftleri karşılaştırma problemlerini göz önünde bulundurarak ( Can fiyat != fiyat ? )

Ayrıca yayılmayı ve hedefinizin yayılmayı kapsayıcı mı yoksa dışlayıcı mı olduğunu düşünmeniz gerekir.

 

(iç çeker) tamam - Yardımın için teşekkürler Raptor! Bu sinir bozucu hale geliyor. Yemin ederim bu kadar zaman alıcı olmasına gerek yok... That If yukarıdaki ifade işe yaramayacak.

Dürüst olmak gerekirse, aklın ucundayım ...

Yukarıdaki "if" ifadesini eklemezsem (ki bu durumda hiçbir şey olmaz) birkaç yarıyı kapatacak (yarım buçuk vb.) bu yarıyı ne zaman kapatacağını bilmek nasılsa...

Daha fazla öneri çok takdir edilecektir, yardımınız için teşekkürler!

 
DomGilberto :

(iç çeker) tamam - Yardımın için teşekkürler Raptor! Bu sinir bozucu hale geliyor. Yemin ederim bu kadar zaman alıcı olmasına gerek yok... That If yukarıdaki ifade işe yaramayacak.

Dürüst olmak gerekirse, aklın ucundayım ...

Yukarıdaki "if" ifadesini eklemezsem (ki bu durumda hiçbir şey olmaz) birkaç yarıyı kapatacak (yarım buçuk vb.) bu yarıyı ne zaman kapatacağını bilmek nasılsa...

Karşılanması gereken bir fiyat koşulu belirtmezseniz, o zaman mümkün olan en kısa sürede Emrin yarısını kapatacaktır, Teklif her zaman Tekliftir ve bir OP_BUY'u kapatmak için geçerlidir.

if ifadesi çalışacaktır. . . nedenini bulamazsa, önüne bir Print() ekleyin. . . ve ondan sonra.

 Print ( "Current Bid: " , DoubleToStr(Bid, Digits ), " FirstTarget_Buy: " , DoubleToStr(FirstTarget_Buy, Digits )  );

if (Bid >= FirstTarget_Buy + ( Point / 2 ) )
   {
   Print ( "Bid >= FirstTarget_Buy - Current Bid: " , DoubleToStr(Bid, Digits ), " FirstTarget_Buy: " , DoubleToStr(FirstTarget_Buy, Digits )  );

   //  close the Order
   }

Endişelenme, daha sinir bozucu olur. . . kodunuz tam istediğiniz gibi çalıştığında ve onu Strateji Test Cihazında çalıştırdığınızda ve bunun bir Coin Toss kadar iyi olduğunu gördüğünüzde

 
Tamam teşekkürler! Ayrıca beni neden bazen ST çalıştırdığımı, sonra durdurduğumu ve Journal'da hiçbir şeyin yazdırılmadığını aydınlatabilir misiniz?

" Kodunuzu istediğiniz gibi çalıştırdığınızda ve onu Strateji Test Cihazında çalıştırdığınızda ve bunun bir Coin Toss kadar iyi olduğunu gördüğünüzde "

Evet sadece hayal edebiliyorum! Aslında yaklaşık 6 sayfa yazmayı başardım (kaç satır olduğundan emin değilim) yaklaşık. bunlardan biri 1: 1'de %50 kapanıyor ve başa baş için hareket ediyor... AMA HAYIR HAYIR, parti kapanışı karşı sezgisel oluyor (endişelendiğim kadarıyla)
 
DomGilberto :
Tamam teşekkürler! Ayrıca beni neden bazen ST çalıştırdığımı, sonra durdurduğumu ve Journal'da hiçbir şeyin yazdırılmadığını aydınlatabilir misiniz?

Doğru günlük sekmesine mi bakıyorsunuz? iki tane . . . Strateji test penceresinde bakmanız gereken ve uzmanlar sekmesinin yanında bakmanız gereken. En iyi yol, tester\logs'a kaydedilen günlük dosyasına bakmaktır.

 
2013.08 . 01 13 : 44 : 27      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.37931
2013.08 . 01 13 : 44 : 27      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.18
2013.08 . 01 13 : 44 : 27      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: Order Ticker Number = 10
2013.08 . 01 13 : 44 : 27      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.09000
2013.08 . 01 13 : 44 : 27      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.01000
2013.08 . 01 13 : 44 : 27      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000
   if(OrderType()==OP_BUY && Bid >= FirstTarget_Buy +(Point / 2)){
                  Print("Bid >= FirstTarget_Buy - Current Bid: ", DoubleToStr(Bid, Digits), " FirstTarget_Buy: ", DoubleToStr(FirstTarget_Buy, Digits)  );
                  bool Close_Half_Order_Buy = OrderClose(OrderTicket(),half,Bid,3,CLR_NONE);
                  if(Close_Half_Order_Buy!=TRUE)Print("Close_Half_Order_Buy Last Error = ", GetLastError());
                  }
Bu mükemmel - firsttarget_buy tam olarak doğru. Kapatılacak parti sayısı tam olarak doğru. Bunların hepsi bekleyen bir siparişte yazdırılıyor - Ancak, doğru hesaplamış olmama rağmen bu fiyattan kapanmıyor mu? "OP_BUY" olduğunda seçiyorum... Tüm bu soruları sorduğum için üzgünüm ama bunun neden işe yaramayacağını anlamıyorum?
 
DomGilberto :
Bu mükemmel - firsttarget_buy tam olarak doğru. Kapatılacak parti sayısı tam olarak doğru. Bunların hepsi bekleyen bir siparişte yazdırılıyor - Ancak, doğru hesaplamış olmama rağmen bu fiyattan kapanmıyor mu? "OP_BUY" olduğunda seçiyorum... Tüm bu soruları sorduğum için üzgünüm ama bunun neden işe yaramayacağını anlamıyorum?

Baskıyı if( . . . . .

 Print ( "Current Bid: " , DoubleToStr(Bid, Digits ), " FirstTarget_Buy: " , DoubleToStr(FirstTarget_Buy, Digits )  );   //  add this line too . . .

if (Bid >= FirstTarget_Buy + ( Point / 2 ) )
   {
   Print ( "Bid >= FirstTarget_Buy - Current Bid: " , DoubleToStr(Bid, Digits ), " FirstTarget_Buy: " , DoubleToStr(FirstTarget_Buy, Digits )  );

   //  close the Order
   }

. . . onsuz, Teklifin FirstTarget_buy değerinden büyük veya eşit olduğunu nereden biliyorsunuz? değilse, if() doğru değildir ve Sipariş kısmen kapalı değildir. . . ve hala Bekleyen bir siparişse, OP_BUY değildir.

 
2013.08 . 01 14 : 19 : 36      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: Current Bid: 1.35972 FirstTarget_Buy: 1.37931
2013.08 . 01 14 : 19 : 36      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.37931
2013.08 . 01 14 : 19 : 36      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.18
2013.08 . 01 14 : 19 : 36      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: Order Ticker Number = 9
2013.08 . 01 14 : 19 : 36      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.09000
2013.08 . 01 14 : 19 : 36      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.01000
2013.08 . 01 14 : 19 : 36      2013.02 . 01 15 : 00   trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000

Teklifin " FirstTarget_buy" değerine eşit veya daha büyük olduğunu görebilir miyim? 2:1 ödül oranı kar alma hedefine kadar giden bir ticareti test ediyorum... Yani 1:1 ödül olduğunu biliyorum - Partilerin yarıya indirilmesi gereken yer burası... Tüm yazdırma işlevleri yazdırılır bekleyen siparişler (yani, bekleyen bir sipariş varsa ve testi durdurursam, tüm baskılar görünür - ancak, bekleyen siparişlerden biri tetiklendikten sonra testi durdurursam, "Yazdır" açısından yazdırılan hiçbir şey olmaz, dergide?)

Buna takıldığıma inanamıyorum - bu şimdiye kadarki en büyük zorluk haline geliyor - yine de çok daha karmaşık başka şeyler olduğunu hissediyorum...

(güncelleme: Fiyatı "for" döngüme çekmek için Teklifi adım adım izlemem gerektiğini varsayıyorum?

"IF()" ifadesinin doğru olması için, Teklif sonunda " FirstTarget_buy" e eşit mi olacak?

 
DomGilberto :

Teklifin " FirstTarget_buy" değerine eşit veya daha büyük olduğunu görebilir miyim? 2:1 ödül oranı kar alma hedefine kadar giden bir ticareti test ediyorum... Yani 1:1 ödül olduğunu biliyorum - Partilerin yarıya indirilmesi gereken yer burası... Tüm yazdırma işlevleri yazdırılır bekleyen siparişler (yani, bekleyen bir sipariş varsa ve testi durdurursam, tüm baskılar görünür - ancak, bekleyen siparişlerden biri tetiklendikten sonra testi durdurursam, "Yazdır" açısından yazdırılan hiçbir şey olmaz, dergide?)

Tamam, şimdi ilerleme kaydediyorsun. . . sadece bir OP_BUY'un neden tüm değişkenleri bekleyen bir Siparişle aynı şekilde yazdıran kodunuzu tetiklemediğini bulmanız gerekiyor. . . Eğer o kodu göndermek istersen bakacağım.