"Yüzer" PositionSelect() hatası - sayfa 5

 

prostotrader :

Yani "profesör" daha anlaşılır mı?

Vay canına. Yetişkin misin, nesin?

Ekran görüntüsünde ne görmek istersiniz?

Günlüğünüzdeki noktalara göre gidelim.

Önce gelir:

2016.08.15 15:37:17.720    Test_deff_order (GAZR-9.16,M1)    History done. Ticket: 50942179

İkinci paragrafta ne görüyorsun?

Tembel olmayacağım ve yazacağım:

2016.08.15 15:37:17.720    Test_deff_order (GAZR-9.16,M1)    Volume initial: 1.0. Volume current: 0.0 Deals done: 0.0 

 

Ancak yine bir şeyi (emirleri) analiz etmeye çalışıyorsunuz ve pozisyon hacmini analiz etmenizi sağlayan tetikleyicinin TRADE_TRANSACTION_DEAL_ADD türünde bir işlem olduğu gerçeğini tamamen görmezden geliyorsunuz - geçmişe bir işlem ekliyor.

Aynı zamanda, onuncu kez ısrarla TRADE_TRANSACTION_DEAL_ADD ile pozisyon hacmini kontrol etmiyorsunuz.

İşte yukarıdaki gönderiden kodunuz:

       case TRADE_TRANSACTION_DEAL_ADD :
         if ((order_ticket!= 0 ) && (trans.order==order_ticket))
        {
         Print ( "Deal done. Ticket: " ,trans.order);
        }
       break ; 
 
Изменение позиции в терминале происходит строго в результате получения сделочной транзакции, ....

Pozisyonun (ikinci durumda) işlem gelmeden ÖNCE değiştiği açık değil mi?

BU OLMAMALI, çünkü Alexander şunu yazdı:

 Изменение позиции в терминале происходит СТРОГО в результате получения сделочной транзакции, ....
 

KESİNLİKLE!

KESİNLİKLE!

KESİNLİKLE!

KESİNLİKLE!

 
prostotrader :

Pozisyonun (ikinci durumda) işlem gelmeden ÖNCE değiştirilmesi gerektiği gerçekten açık değil mi?

BU OLMAMALI, çünkü Alexander şunu yazdı:

Oh, işte bu ... Sadece yazar daha kesin olarak söyleyecektir :-))

Ama IMHO, bu sözler kusur bulmamalı. Anlaşma işlemi zaten geldi, sadece OnTradeTransaction() içinde hemen işlenmedi.

Kodunuzda TRADE_TRANSACTION_HISTORY_ADD varken, bir ticaret işlemi göstermeniz harika.

IMHO, burada anlaşmaları inceleyerek işlemek önemlidir - TRADE_TRANSACTION_DEAL_ADD vakası.

 
Dennis Kirichenko :

Oh, işte bu ... Sadece yazar daha kesin olarak söyleyecektir :-))

Ama IMHO, bu sözler kusur bulmamalı. Anlaşma işlemi zaten geldi, sadece OnTradeTransaction() içinde hemen işlenmedi.

IMHO, anlaşmaları inceleyerek işlemek önemlidir...

Teşekkürler Deniska!

Ve ben bir enayiyim, OnTradeTransaction'ın ne olduğunu bile bilmiyorum

 
prostotrader :

Teşekkürler Deniska!

Ve ben bir enayiyim, OnTradeTransaction'ın ne olduğunu bile bilmiyorum

Sağlık için! Ama ironiniz boşuna. Size defalarca kodda tam olarak neyin yanlış olduğu söylendi.

En azından Vladimir'e teşekkür ettin, doğru yönü gösteren ilk kişi o oldu ;-)

 
Dennis Kirichenko :

Sağlık için! Ama ironiniz boşuna. Size defalarca kodda tam olarak neyin yanlış olduğu söylendi.

En azından Vladimir'e teşekkür ettin, doğru yönü gösteren ilk kişi o oldu ;-)

"Boş zamanınızda" okuyun:

https://www.mql5.com/en/forum/93357#comment_2707875

 

Vladimir Karputov

Avatarlarımın altındaki sayıları 1000 ile çarpmam mümkün mü?

Ve ilerisi...

Dikkat etmediyseniz, tüm örneklerde siparişlerin verildiğini söyleyeceğim.

zaman uyumsuz, bu yüzden onları kontrol etmek çok önemlidir !

 
prostotrader :

Vladimir Karputov

Avatarlarımın altındaki sayıları 1000'e kadar öldürmek mümkün mü?

Avatarınızın altındaki figürler size ait değildir, bu nedenle onlar üzerinde hiçbir gücünüz yoktur (istediğiniz gibi değiştiremezsiniz).

Katma.

TRADE_TRANSACTION_DEAL_ADD türünde bir işlem geçene kadar siparişleri unutun. Neden "unutmak"? Çünkü bu doğru değil.