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

 
Igor Makanu :

bu kodu deneyin, EA günlüğündeki mesajı okuyun (TF'yi değiştirin, bir değişken girin, EA'yı kapatmadan terminali yeniden başlatın...)

ve ikinci seçenek, küresel görünürlük düzeyinde statik değiştiricili bir değişkeni tanımlamaktır.

Hemen söylemeyi unuttuğum düzeltme mql4.

İkinci olarak, EA değişkenleri değiştiğinde OnInit()'in başlatılmasına ihtiyacım var.

Yardım istediğim tek şey bu!

Evet, terminali yeniden başlatmak ve tf'yi değiştirmek yardımcı olur, ancak değişkenleri değiştirirken OnInit () çalışmıyor ve bu nedenle tüm pervazlara sahibim !!!!

 
Игорь :

Hemen söylemeyi unuttuğum düzeltme mql4.

İkinci olarak, EA değişkenleri değiştiğinde OnInit()'in başlatılmasına ihtiyacım var.

Yardım istediğim tek şey bu!

Evet, terminali yeniden başlatmak ve tf'yi değiştirmek yardımcı olur, ancak değişkenleri değiştirirken OnInit () çalışmıyor ve bu nedenle tüm pervazlara sahibim !!!!

Bunu yapabilirsin. Expert Advisor'ın ilk açılışında OnInit() değişkenleri kopyalar. Calc...() üzerinde veya MT4'te olduğu gibi, değişkenlerin kimliklerini kopyalarına kontrol eder. Değişkenler eşleşmezse, OnInit()'i ve gerekirse ondan önce EA'yı sıfırlamak için başka bir şeyi zorla başlatırız. Peki ve sonunda dönüş.

 
Игорь :

Hemen söylemeyi unuttuğum düzeltme mql4.

İkinci olarak, EA değişkenleri değiştiğinde OnInit()'in başlatılmasına ihtiyacım var.

Yardım istediğim tek şey bu!

Evet, terminali yeniden başlatmak ve tf'yi değiştirmek yardımcı olur, ancak değişkenleri değiştirirken OnInit () çalışmıyor ve bu nedenle tüm pervazlara sahibim !!!!

sana verdiğim koda baktın mı bu MT4'tü ve her şey istediğiniz gibi çalışıyor

ardından https://docs.mql4.com/en/runtime/event_fire belgelerini okuyun

burada önerdiğim kodu çalıştırdım, var dış değişkenini 2 kez değiştirdim, işte uzman günlüğü:

 0        15 : 36 : 39.736     Compiling 'test'
0        15 : 37 : 37.573     Expert test EURUSD,H1: loaded successfully
0        15 : 37 : 39.101     test EURUSD,H1 inputs: var1= 1 ; 
0        15 : 37 : 39.130     test EURUSD,H1: Вызов OnInit (), var1= 1
0        15 : 37 : 39.130     test EURUSD,H1: initialized
0        15 : 37 : 51.341     test EURUSD,H1: uninit reason 5
0        15 : 37 : 51.343     test EURUSD,H1: Вызов OnInit (), var1= 34567
0        15 : 37 : 51.343     test EURUSD,H1: initialized
0        15 : 37 : 51.366     test EURUSD,H1 inputs: var1= 34567 ; 
0        15 : 38 : 04.124     test EURUSD,H1: uninit reason 5
0        15 : 38 : 04.126     test EURUSD,H1: Вызов OnInit (), var1=- 9999
0        15 : 38 : 04.126     test EURUSD,H1: initialized
0        15 : 38 : 04.149     test EURUSD,H1 inputs: var1=- 9999 ; 

hadi "sövelerin tırmandığı" yeri kodlayalım

peki, MQL programında herhangi bir yerden herhangi bir işlevi çağırabilirsiniz, uzman başlatma işlevi de bir işlevdir, zorla OnInit() öğesini çağırabilirsiniz, ancak bu genellikle gerekli değildir, terminalin kendisi OnInit () öğesini çağırır.

События клиентского терминала - Программы MQL4 - Справочник MQL4
События клиентского терминала - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
Igor Makanu :

kodda çok hata var

fiyatları normalleştirmeniz gerekiyor, o zaman işe yarayacak, ardından "yanlış fiyatlar" vermek için bir sunucu hatası olacak, StopLoss_SELL'i daha yüksek normalleştirmek istenir

ve büyük olasılıkla zararı durdurmanın sıfıra eşit olup olmadığını kontrol etmeniz gerekir ve eşitlik için gerçek sayıları karşılaştırmak istenmez, > veya < için gerçek sayıları karşılaştırmaya çalışmanız gerekir.

Çok fazla hata varsa, hepsini işaret eder misiniz?

 
Igor Makanu :

sana verdiğim koda baktın mı bu MT4'tü ve her şey istediğiniz gibi çalışıyor

ardından https://docs.mql4.com/en/runtime/event_fire belgelerini okuyun

burada önerdiğim kodu çalıştırdım, var dış değişkenini 2 kez değiştirdim, işte uzman günlüğü:

hadi "sövelerin tırmandığı" yeri kodlayalım

peki, MQL programında herhangi bir yerden herhangi bir işlevi çağırabilirsiniz, uzman başlatma işlevi de bir işlevdir, zorla OnInit() öğesini çağırabilirsiniz, ancak bu genellikle gerekli değildir, terminalin kendisi OnInit () öğesini çağırır.

Bulunan hata kodunuz sayesinde çok teşekkürler !!!!!!!!! SANA İYİ ŞANSLAR !!!! VE YARDIMINIZ İÇİN TEŞEKKÜR EDERİZ !!!!!!

 
Lütfen bana söyle. Standart MA göstergesinin tüm tarih için değil, belirli sayıda mum için görüntülenmesi nasıl yapılır? Teşekkür ederim.
 
prom18 :
Lütfen bana söyle. Standart MA göstergesinin tüm tarih için değil, belirli sayıda mum için görüntülenmesi nasıl yapılır? Teşekkür ederim.
Geçmiş derinlik ayarıyla kendi MA göstergenizi yazın!
 

Bir Uzman Danışmanı test etmek için teklifler manuel olarak nasıl ayarlanır?

Bir çözüm olmalı, ama google'da bulamadım

 
Galim_V :

Bir duraklamadan sonra neden F12'den memnun değilsiniz?

Tam olarak ayarlanacak fiyat hareketini kastetmiştim

 
Andrey Sokolov :

Bir Uzman Danışmanı test etmek için teklifler manuel olarak nasıl ayarlanır?

Muhtemelen bir çözümü vardır, ama google'da bulamadım

Kenelerinizi yazın ve bunları strateji test cihazında değiştirin.