MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 517

 
Alexey Viktorov :

Ve sonra aynı formülasyonları kullanmaya devam edin.


))) Biri diğerinden daha yaşlı, daha genç iki nesne, daha genç (en yakın) noktasının fiyatına ihtiyacım var ve yorumlarda daha yaşlı (en uzak) nesnenin noktasının fiyatını alıyorum. Niye ya? Öte yandan döngü, önceki, yorumlanan döngü en uzaktaki nesneyi döndürdüyse, mevcut döngü en yakın olanı - sonuncuyu, ancak sondan bir öncekini döndürmelidir. Bir yerde, anlamıyorum.
 
PolarSeaman :
))) Biri diğerinden daha yaşlı, daha genç iki nesne, daha genç (en yakın) noktasının fiyatına ihtiyacım var ve yorumlarda daha yaşlı (en uzak) nesnenin noktasının fiyatını alıyorum. Niye ya? Öte yandan döngü, önceki, yorumlanan döngü en uzaktaki nesneyi döndürdüyse, mevcut döngü en yakın olanı - sonuncuyu, ancak sondan bir öncekini döndürmelidir. Bir yerde, anlamıyorum.

Döngüyü göster - bir ve iki kez - döngüdeki nesneleri zamana göre seçmek için, iki kez karşılaştırmanız gerekir - geçmiş nesne ve mevcut nesne. Geçerli zaman daha uzunsa, döngünün bir sonraki yinelemesinde kontrol etmek için bir değişkende saklayın. Döngünün sonunda, değişken oluşturulan en son nesneyi içerecektir.

 
YanSay :

Denedim, işe yaramadı, muhtemelen yanlış bir şey yapıyorum (

Buradaki en ciddi hata OrderDelete() fonksiyonunun argümanında bilet yerine 100 değerinin belirtilmesidir.

Ayrıca, hata o kadar kaba değildir, ancak hesaplanan Zarar Durdur değerinin gerçek değeri değil kontrol edilmesiyle ilgilidir.

Sipariş türü henüz kontrol edilmedi. Aniden bir piyasa emri mi seçtiniz? O zaman nasıl kaldırılır? Sipariş sembolü kontrol edilmedi.

Bu hataları dikkate alarak, fiyat Stop Loss'a ulaştığında bekleyen bir emri silmek için aşağıdaki kodu alırız:

 for ( int i = OrdersTotal () - 1 ; i >= 0 ; --i)
{
   if (! OrderSelect (i, SELECT_BY_POS ))
       continue ;

   if ( OrderSymbol () != Symbol ())
       continue ;

   if ( OrderMagicNumber () != 100 )
       continue ;

   if ((( OrderType == OP_BUYSTOP || OrderType () == OP_BUYLIMIT ) && Bid <= OrderStopLoss ()) ||
       (( OrderType == OP_SELLSTOP || OrderType () == OP_SELLLIMIT ) && Ask >= OrderStopLoss () && OrderStopLoss () > 0.0 ))
   {
       if ( OrderDelete ( OrderTicket ()))
         RefreshRates ();
   }
                                        
}   
Ayrıca kodunuzda, sipariş açıldıktan hemen sonra Zararı Durdur kontrol edilir. Bekleyen bir sipariş açtıktan sonra bu kod artık yürütülmüyor gibi görünüyor. Yani yürütme dallarını ayırmanız gerekir. Biri siparişi vermekten, ikincisi ise desteğinden sorumludur.
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 

Merhaba sevgililer!

Bir tuş kombinasyonunu yakalamanın nasıl mümkün olduğunu sor, örneğin Ctrl+1. Klavyenin bir tuşunu nasıl yakalayacağımı biliyorum.

Ve MT4'te bir kombinasyona ihtiyacım var - bu nasıl yapılır!?

 
Игорь :

Merhaba sevgililer!

Bir tuş kombinasyonunu yakalamanın nasıl mümkün olduğunu sor, örneğin Ctrl+1. Klavyenin bir tuşunu nasıl yakalayacağımı biliyorum.

Ve MT4'te bir kombinasyona ihtiyacım var - bu nasıl yapılır!?

OnChartEvent olayı, lparam ve sparam parametrelerini ayrıştırır, çünkü Ctrl+1'e basmak iki olaydır.

 
Ihor Herasko :

OnChartEvent olayı, lparam ve sparam parametrelerini ayrıştırır, çünkü Ctrl+1'e basmak iki olaydır.

Değil ama çalışmıyor denedim !!!

Yalnızca cntrl'ye basıldığında görüntüleniyor ve diğer tüm artılar 1 ve harfler çalışmıyor !!!

 
Игорь :

Değil ama çalışmıyor denedim !!!

Yalnızca cntrl'ye basıldığında görüntüleniyor ve diğer tüm artılar 1 ve harfler çalışmıyor !!!

Ben de yazdım:

Ctrl + 1'e basmak iki olaydır

İki olayı yakalayın ve analiz edin:

 2018.04 . 05 12 : 26 : 32.170 Test EURUSD,M15: OnChartEvent , id: CHARTEVENT_KEYDOWN , lparam: 17 , dparam: 1.0 , sparam: 285
2018.04 . 05 12 : 26 : 32.396 Test EURUSD,M15: OnChartEvent , id: CHARTEVENT_KEYDOWN , lparam: 49 , dparam: 1.0 , sparam: 2

Bu Ctrl+1'e basmaktır.

 
Ihor Herasko :

Ben de yazdım:

İki olayı yakalayın ve analiz edin:

Bu Ctrl+1'e basmaktır.

Burada sadece kontrolüm var ya da 1'i var, diğerini değil ya da kodunuzu gösterin!

cntrl'ye bastıktan sonra, siz cntrl'yi bırakana kadar başka olay olmaz!

Herkes bir hata buldu teşekkürler! Daha fazla kazacağım!

 
Yinelenenler kaldırıldı.
 
Vitaly Muzichenko :

Bir profille mi? =)

:)