Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 82

 

Tünaydın,

mql5 ile ilgili soru - stopLoss ve takeProfit tetikleyicileriyle nasıl çalışılacağını söyle?

Bir emir gönderirim , değiştiririm, yürütülür ve kaybolur. sl, tp'yi değiştirmesi için başka bir olasılık yok - OrderSelect, sipariş bulunamadı hatasıyla düşüyor. Ardından tetik tetiklenir ve otomatik olarak stopLoss / takeProfit uygulayan yeni bir sipariş oluşturulur.  

 
Forux : ile ilgili soru - stopLoss ve takeProfit tetikleyicileriyle nasıl çalışacağımı söyleyebilir misiniz?

Bir emir gönderirim, değiştiririm, yürütülür ve kaybolur. sl, tp'yi değiştirmesi için başka bir olasılık yok - OrderSelect, sipariş bulunamadı hatasıyla düşüyor. Ardından tetik tetiklenir ve otomatik olarak stopLoss / takeProfit uygulayan yeni bir sipariş oluşturulur.  

Mql5 ideolojisi, sıra tetiklendikten sonra seçilen enstrüman (sembol) için bir pozisyonun açılması (değiştirilmesi, kapatılması) şeklindedir. Bu nedenle emir tetiklendikten sonra (pozisyonun kapanmasına yol açmadıysa) pozisyonla çalışmak gerekir. Örneğin, PositionSelect() kullanılarak. StopLoss ve TakeProfit seviyelerini değiştirmek için, bir pozisyonun kendi ticaret talebi versiyonu vardır.
 
Yedelkin :
Mql5 ideolojisi, sıra tetiklendikten sonra seçilen enstrüman (sembol) için bir pozisyonun açılması (değiştirilmesi, kapatılması) şeklindedir. Bu nedenle emir tetiklendikten sonra (pozisyonun kapanmasına yol açmadıysa) pozisyonla çalışmak gerekir. Örneğin, PositionSelect() kullanılarak. StopLoss ve TakeProfit seviyelerini değiştirmek için, bir pozisyonun kendi ticaret talebi versiyonu vardır.

O zaman stopLoss neden pozisyonu kapatmıyor?  

 2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 01 : 21    order performed sell 0.10 at 1.33260 [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 01 : 21    deal performed [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 01 : 21    deal # 3 sell 0.10 EURUSD at 1.33260 done (based on order # 3 )
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 01 : 21    stop loss triggered buy 0.10 EURUSD 1.33310 sl: 1.33260 tp: 1.33360 [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 00 : 02    Cant select order 2 error 4754
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 00 : 00    position modified [buy 0.10 EURUSD 1.33310 sl: 1.33260 tp: 1.33360 ]
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 00 : 00     === add order === 2
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 00 : 00    order performed buy 0.10 at 1.33310 [ # 2 buy 0.10 EURUSD at 1.33310 ]
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 00 : 00    deal performed [ # 2 buy 0.10 EURUSD at 1.33310 ]
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 00 : 00    deal # 2 buy 0.10 EURUSD at 1.33310 done (based on order # 2 )
2013.01 . 16 10 : 33 : 50      Core 1    2010.05 . 03 00 : 00 : 00    exchange buy 0.10 EURUSD at 1.33310 ( 1.33290 / 1.33310 / 1.33290 )

Ek olarak, hacmi, stop loss'u geri kazandıktan sonra bile, sürekli olarak 0.10 lot'a eşittir.

 

Forux : Тогда почему stopLoss не закрывает позицию?  Кроме того ее объем постоянно равен 0.10 лотам, да же после отыгрывания  stop loss  

Ve SL tetiklendikten sonra pozisyonun kapanmadığını ve hacminin aynı kaldığını nasıl belirlersiniz?
 
Yedelkin :
Ve SL tetiklendikten sonra pozisyonun kapanmadığını ve hacminin aynı kaldığını nasıl belirlersiniz?

PositionGetDouble( POSITION_VOLUME ) ;  

 2013.01 . 16 11 : 38 : 36      Core 1   disconnected
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 30    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 28    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 26    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 24    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 22    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 21    order performed sell 0.10 at 1.33260 [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 21    deal performed [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 21    deal # 3 sell 0.10 EURUSD at 1.33260 done (based on order # 3 )
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 01 : 21    stop loss triggered buy 0.10 EURUSD 1.33310 sl: 1.33260 tp: 1.33360 [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 11    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 09    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 06    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 04    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 02    PositionGetDouble ( POSITION_VOLUME ) = 0.1
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 00    position modified [buy 0.10 EURUSD 1.33310 sl: 1.33260 tp: 1.33360 ]
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 00     === add order === 2
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 00    order performed buy 0.10 at 1.33310 [ # 2 buy 0.10 EURUSD at 1.33310 ]
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 00    deal performed [ # 2 buy 0.10 EURUSD at 1.33310 ]
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 00    deal # 2 buy 0.10 EURUSD at 1.33310 done (based on order # 2 )
2013.01 . 16 11 : 38 : 34      Core 1    2010.05 . 03 00 : 00 : 00    exchange buy 0.10 EURUSD at 1.33310 ( 1.33290 / 1.33310 / 1.33290 )
2013.01 . 16 11 : 38 : 34      Core 1     magic= 12345
 
Ve PositionGetDouble( POSITION_VOLUME )' ı tekrar kullanmadan önce, Dizin'de belirtildiği gibi konum bilgisini güncelliyor musunuz?
 
Yedelkin :
Ve PositionGetDouble( POSITION_VOLUME )' u tekrar kullanmadan önce, Dizin'de belirtildiği gibi konum bilgisini güncelliyor musunuz?

Ne demek istediğini doğru anladıysam, evet, aşağıdakileri yapıyorum:  

 PositionSelect ( _Symbol ); // судя по справке обновляет кеш
Print ( "PositionGetDouble(POSITION_VOLUME) = " + PositionGetDouble ( POSITION_VOLUME ));
 
Forux : Ne demek istediğini doğru anladıysam, evet, aşağıdakileri yapıyorum:  
Evet, bahsettim. Onlar. 10 saniye içinde böyle bir yapının kullanılması, Sl tarafından kapatılan pozisyonun sıfırdan farklı bir hacmini geri getiriyor mu? Bu durumda, henüz bu soru için bir fikir yok :(
 

Ve şöyle deneyin:

if(PositionSelect(_Symbol)) 
   Print("myPositionGetDouble(POSITION_VOLUME) == " + PositionGetDouble(POSITION_VOLUME));
else 
   Print("Сведения о позиции не обнаружены");
 
Yedelkin :

Ve şöyle deneyin:

Çok teşekkürler :)  

 2013.01 . 16 12 : 47 : 49      Core 1   disconnected
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 30    Сведения о позиции не обнаружены
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 28    Сведения о позиции не обнаружены
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 26    Сведения о позиции не обнаружены
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 24    Сведения о позиции не обнаружены
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 22    Сведения о позиции не обнаружены
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 21    order performed sell 0.10 at 1.33260 [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 21    deal performed [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 21    deal # 3 sell 0.10 EURUSD at 1.33260 done (based on order # 3 )
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 01 : 21    stop loss triggered buy 0.10 EURUSD 1.33310 sl: 1.33260 tp: 1.33360 [ # 3 sell 0.10 EURUSD at 1.33260 ]
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 11    myPositionGetDouble( POSITION_VOLUME ) == 0.1
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 09    myPositionGetDouble( POSITION_VOLUME ) == 0.1
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 06    myPositionGetDouble( POSITION_VOLUME ) == 0.1
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 04    myPositionGetDouble( POSITION_VOLUME ) == 0.1
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 02    myPositionGetDouble( POSITION_VOLUME ) == 0.1
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 00    position modified [buy 0.10 EURUSD 1.33310 sl: 1.33260 tp: 1.33360 ]
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 00     === add order === 2
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 00    order performed buy 0.10 at 1.33310 [ # 2 buy 0.10 EURUSD at 1.33310 ]
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 00    deal performed [ # 2 buy 0.10 EURUSD at 1.33310 ]
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 00    deal # 2 buy 0.10 EURUSD at 1.33310 done (based on order # 2 )
2013.01 . 16 12 : 47 : 45      Core 1    2010.05 . 03 00 : 00 : 00    exchange buy 0.10 EURUSD at 1.33310 ( 1.33290 / 1.33310 / 1.33290 )
2013.01 . 16 12 : 47 : 45      Core 1     magic= 12345