OnTradeTransaction() mql4'te nasıl değiştirilir? - sayfa 6

 
Vitaly Muzichenko :

Hayır, ama belki farklı şeylerden bahsediyoruzdur.

Her zaman işe yarayacak

Yine de, terminali açmaya ve kontrol etmeye zorladım ... İşte bir betiğin üç lansmanı ve buna göre üç sonuç.

Komut dosyasında sadece bir satır var

   Print ( "OrdersHistoryTotal " , OrdersHistoryTotal());
2020.01 . 27 18 : 28 : 51.063 Script 00 EURGBP,H4: removed
2020.01 . 27 18 : 28 : 51.063 00 EURGBP,H4: uninit reason 0
2020.01 . 27 18 : 28 : 51.063 00 EURGBP,H4: OrdersHistoryTotal 48
2020.01 . 27 18 : 28 : 51.063 00 EURGBP,H4: initialized
2020.01 . 27 18 : 28 : 51.043 Script Test\ 00 EURGBP,H4: loaded successfully
2020.01 . 27 18 : 28 : 38.203 Script 00 EURGBP,H4: removed
2020.01 . 27 18 : 28 : 38.193 00 EURGBP,H4: uninit reason 0
2020.01 . 27 18 : 28 : 38.193 00 EURGBP,H4: OrdersHistoryTotal 47
2020.01 . 27 18 : 28 : 38.193 00 EURGBP,H4: initialized
2020.01 . 27 18 : 28 : 38.183 Script Test\ 00 EURGBP,H4: loaded successfully
2020.01 . 27 18 : 28 : 16.443 Script 00 EURGBP,H4: removed
2020.01 . 27 18 : 28 : 16.443 00 EURGBP,H4: uninit reason 0
2020.01 . 27 18 : 28 : 16.443 00 EURGBP,H4: OrdersHistoryTotal 4
2020.01 . 27 18 : 28 : 16.443 00 EURGBP,H4: initialized
2020.01 . 27 18 : 28 : 16.423 Script Test\ 00 EURGBP,H4: loaded successfully

Danışman çalışırken ve kullanıcı geçmişi görüntüleme aralığını eğlenceli tutamaçlarla değiştirmeye karar verdiğinde, danışmanın ikinci anahtarda çıldıracağı gerçeğinden bahsediyorum. Ya daha az, sonra daha çok, sonra tekrar ezberlenenden farklıdır. Ve hatta olsa bile

   if (HT!=__TotalHist)

!= yerine özellikle > koymak durum değişmeyecektir. Danışman, ayar "Bugün" olarak ayarlandığında ve "Tüm geçmiş"e geçtiği anda başlatılırsa... ne olur???

 
Aleksandr Volotko :

Evet, OrderHistoryTotal () öğesine dokunun ve hiçbir düşünce yoktu, neden?

Her ihtimale karşı:))))

 
Alexey Viktorov :

Her ihtimale karşı:))))

:)) Yeterince sahibim ve OrdersTotal() oldukça

İki zamanlayıcı yapabilir mi? hatta biri OrdersTotal() değerlerini en az her 100 ms'de bir karşılaştırır ve ikincisi güvenlik nedenleriyle dakikada bir (veya daha az) döngüde tam bir numaralandırma - eğer biri varsa tek bir fare oraya kaymaz iki düzine işlem her 100500 defada bir kapanıyor / bir dakika sonra açılıyor - kesinlikle ölmeyeceğim, sanırım depozito da.

 
Aleksandr Volotko :

:)) Yeterince sahibim ve OrdersTotal() oldukça

İki zamanlayıcı yapabilir mi? hatta biri OrdersTotal() değerlerini en az her 100 ms'de bir karşılaştırır ve ikincisi güvenlik nedenleriyle dakikada bir (veya daha az) döngüde tam bir numaralandırma - eğer biri varsa tek bir fare oraya kaymaz iki düzine işlem her 100500 defada bir kapanıyor / bir dakika sonra açılıyor - kesinlikle ölmeyeceğim, sanırım depozito da.

Ve algoritma tarafından aynı anda kaç tane açık emir sağlanıyor?

 
Alexey Viktorov :

Yine de, terminali açmaya ve kontrol etmeye zorladım ... İşte bir betiğin üç lansmanı ve buna göre üç sonuç.

Komut dosyasında sadece bir satır var

Danışman çalışırken ve kullanıcı geçmişi görüntüleme aralığını eğlenceli tutamaçlarla değiştirmeye karar verdiğinde, danışmanın ikinci anahtarda çıldıracağı gerçeğinden bahsediyorum. Ya daha az, sonra daha çok, sonra tekrar ezberlenenden farklıdır. Ve hatta olsa bile

!= yerine özel olarak > koyun durum değişmeyecektir. Danışman, ayar "Bugün" olarak ayarlandığında ve "Tüm geçmiş"e geçtiği anda başlatılırsa... ne olur???

Her durumda, eşitlik olmayacak ve kod daha da ileri gidecek. Ama eğer (HT > __TotalHist) koyarsanız , problemler olacaktır.

 
Alexey Viktorov :

Ve algoritma tarafından aynı anda kaç tane açık emir sağlanıyor?

2-3 düzine maksimum

 
Vitaly Muzichenko :

Her durumda, eşitlik olmayacak ve kod daha da ileri gidecek. Ama eğer (HT > __TotalHist) koyarsanız , problemler olacaktır.

Vitaly, sorunlar her durumda gidecek. Kim ne derse desin, EA geçmişteki sipariş sayısındaki bir değişikliğe cevap vermek zorundaysa, o zaman bu sayı nasıl değişirse değişsin buna tepki verecektir. Aslında, tarihteki siparişlerin sayısı sadece artabilir, bu yüzden daha az tehlikeli olacağını varsaydım, ancak sorunu çözmüyor. Sadece kendim için yazılmış olsa bile, manuel olarak geçiş yapma olasılığı göz ardı edilemez. SMS'in aklınıza ne geldiğini asla bilemezsiniz)))

 
Aleksandr Volotko :

2-3 düzine maksimum

Böyle bir miktar için, sipariş özelliklerine sahip bir bilet dizisi veya hatta bir dizi yapı oluşturmak ve her bir işarette türe ve kapanış saatine göre değişikliği kontrol etmek daha kolaydır. Bu, bekleyen bir emrin aktivasyonunu veya bir pozisyonun kapanmasını takip etmeyi mümkün kılacaktır. Ve OrderSend() gönderdikten hemen sonra açma, dizinin boyutunu ekleyin ve ihtiyacınız olan her şeyi oraya koyun.

 
Yani işin gerçeği, herhangi biri için günde 86.400 kez sipariş sallayabilirsiniz, ancak bunu istemediniz.
 
Aleksandr Volotko :
Yani işin gerçeği, herhangi biri için günde 86.400 kez sipariş sallayabilirsiniz, ancak bunu istemediniz.

Bu durumda Artyom'un kütüphanesi olmadan yaşamak zor olacaktır.