Fraktal Kopma-Sıkışmış - sayfa 3 123456 Yeni yorum Zachary 2013.03.14 01:22 #21 OrderModify ve OrderSelect fonksiyonlarının her ikisinde de parametreleri boşuna değiştirdim... Akış mantıklı görünüyor ve tüm parametreleri iki kez kontrol ettim. Bu, backtest sırasında oluyor, ancak önemli değil. Tjipke de Vries 2013.03.14 09:14 #22 //----------------------------------------------// //-----------------EXITING ORDERS---------------// for ( int i= OrdersTotal ()- 1 ; i>= 0 ;i--) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ; if (OrderMagicNumber()!=MagicNumber || OrderSymbol() != Symbol ()) continue ; double SL=OrderStopLoss(); bool result; int error; //Different OrderTypes if (OrderType()==OP_BUY) { if (BreakEven > 0 ) { if (Bid - OrderOpenPrice() >= Point * BreakEven * mypoint) //make input for BreakEven StopLoss) { //and don't forget mypoint !!! if (OrderStopLoss() < OrderOpenPrice()) { SL = OrderOpenPrice()+ Point ; } } } } if (OrderType()==OP_SELL) { //For you to do } if (SL != OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(), 0 , CLR_NONE ); if (result!=TRUE) { error= GetLastError (); Print ( "ModifyError = " ,OrderTicket(), " " ,error);} } Kodlamayı okumayı kolaylaştırın farkı kendi yazınızla görün bu daha kolay saymak {{{{{{{{{{{{{{{{ }}}}}}}}}}}}}}} ) Simon Gniadkowski 2013.03.14 09:56 #23 ZacharyRC : Hala zorluklar var. Nedenini bulmak için hatalar yaptım. Dergi Bildirdi: 1) Hata 4051=Yanlış Parametre 2) Siparişi Değiştirmek için Geçersiz Bilet //----------------------------------------------// //-----------------EXITING ORDERS---------------// for ( int i= OrdersTotal ()- 1 ; i>= 0 ;i--) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ; if (OrderMagicNumber()!=MagicNumber || OrderSymbol() != Symbol ()) continue ; if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) Print ( GetLastError (),i); if (OrderType()==OP_BUY) { if (Move.BE && StopLoss > 0 ) { if (Bid - OrderOpenPrice() >= Point * StopLoss) { if (OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0 , Red); Print ( "Cant Modify Order" + GetLastError (),i); } } } } else { if (Move.BE && StopLoss > 0 ) { if (OrderOpenPrice() - Ask >= Point * StopLoss) { if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red); Print ( "Cant Modify Order" + GetLastError (),i); } } } } } Bir Satın Alma için SL nasıl Açık fiyatın üzerinde olabilir? OrderOpenPrice() + Nokta * MoveStopTo Simon Gniadkowski 2013.03.14 10:17 #24 deVries : SATIN AL için Değiştirme başarılı olduktan ve ticaret kârlı olduktan sonra OrderOpenPrice() üzerinde OrderStopLoss()'a sahip olmak mümkündür ÇOK KOMİK . . . ayy <kırmızı suratlı gülen> Tjipke de Vries 2013.03.14 10:18 #25 RaptorUK : ÇOK KOMİK . . . ayy <kırmızı suratlı gülen> Yazımı sil kusura bakmayın Simon Gniadkowski 2013.03.14 10:26 #26 ZacharyRC : Hala zorluklar var. Nedenini bulmak için hatalar yaptım. Dergi Bildirdi: 1) Hata 4051=Yanlış Parametre 2) Siparişi Değiştirmek için Geçersiz Bilet Tamam, hata mesajlarınız sahte olabilir. . . if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) Print ( GetLastError (),i); OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red); Print ( "Cant Modify Order" + GetLastError (),i); OrderSelect() çalışıyorsa neden GetLastError()'u çağırıyorsunuz ? size bir hata gösteriyorsa, bunun nedeni OrderSelect() olmayacaktır. OrderModify() için aynı durum, eğer değişiklik çalışıyorsa hala GetLastError()'u çağırıyorsunuz, neden? sadece işlev başarısız olursa çağırın. . . if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { if (!OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red)) Print ( "Cant Modify Order, error# " + GetLastError (), " index " , i); Simon Gniadkowski 2013.03.14 10:26 #27 deVries : Yazımı sil kusura bakmayın Hayır, ben insanım, ben de hata yaparım, insanların bunu bilmesine aldırmıyorum :-) Zachary 2013.03.18 16:47 #28 AHHH bayılıyorum. Her iki noktanız da çok mantıklı. {{{{}}}}}-Ayrıca çok daha kolay! Hatalar yalnızca işlev başarısız olursa çağrılmalıdır. İkinize de teşekkür ederim, umarım hafta sonlarınız güzel geçmiştir. Zachary 2013.03.18 19:43 #29 RaptorUK : Bir Satın Alma için SL nasıl Açık fiyatın üzerinde olabilir? OrderOpenPrice() + Nokta * MoveStopTo SL sıranın altındadır. Satış bölümüne yönlendirme yapmadığınızdan emin misiniz? else { if (Move.BE && StopLoss > 0 ) { if (OrderOpenPrice() - Ask >= Point * StopLoss) { if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red); Print ( "Cant Modify Order" + GetLastError (),i); } Simon Gniadkowski 2013.03.18 19:44 #30 RaptorUK : ÇOK KOMİK . . . ayy <kırmızı suratlı gülen> Benim açımdan bir hataydı. 123456 Yeni yorum
OrderModify ve OrderSelect fonksiyonlarının her ikisinde de parametreleri boşuna değiştirdim...
Akış mantıklı görünüyor ve tüm parametreleri iki kez kontrol ettim.
Bu, backtest sırasında oluyor, ancak önemli değil.
Kodlamayı okumayı kolaylaştırın
farkı kendi yazınızla görün bu daha kolay saymak {{{{{{{{{{{{{{{{ }}}}}}}}}}}}}}} )
Hala zorluklar var. Nedenini bulmak için hatalar yaptım.
Dergi Bildirdi:
1) Hata 4051=Yanlış Parametre
2) Siparişi Değiştirmek için Geçersiz Bilet
Bir Satın Alma için SL nasıl Açık fiyatın üzerinde olabilir? OrderOpenPrice() + Nokta * MoveStopTo
SATIN AL için Değiştirme başarılı olduktan ve ticaret kârlı olduktan sonra OrderOpenPrice() üzerinde OrderStopLoss()'a sahip olmak mümkündür
ÇOK KOMİK . . . ayy <kırmızı suratlı gülen>
Yazımı sil kusura bakmayın
Hala zorluklar var. Nedenini bulmak için hatalar yaptım.
Dergi Bildirdi:
1) Hata 4051=Yanlış Parametre
2) Siparişi Değiştirmek için Geçersiz Bilet
Tamam, hata mesajlarınız sahte olabilir. . .
OrderSelect() çalışıyorsa neden GetLastError()'u çağırıyorsunuz ? size bir hata gösteriyorsa, bunun nedeni OrderSelect() olmayacaktır.
OrderModify() için aynı durum, eğer değişiklik çalışıyorsa hala GetLastError()'u çağırıyorsunuz, neden? sadece işlev başarısız olursa çağırın. . .
Yazımı sil kusura bakmayın
AHHH bayılıyorum. Her iki noktanız da çok mantıklı.
{{{{}}}}}-Ayrıca çok daha kolay!
Hatalar yalnızca işlev başarısız olursa çağrılmalıdır.
İkinize de teşekkür ederim, umarım hafta sonlarınız güzel geçmiştir.
Bir Satın Alma için SL nasıl Açık fiyatın üzerinde olabilir? OrderOpenPrice() + Nokta * MoveStopTo
SL sıranın altındadır.
Satış bölümüne yönlendirme yapmadığınızdan emin misiniz?
ÇOK KOMİK . . . ayy <kırmızı suratlı gülen>