Komut dosyasını Uzman Danışman aracılığıyla çalıştırın - sayfa 2

 
Shaun :

Gerçek hikaye, sitede yeniyim, kodlama konusunda da. Daha önce hiç kodlanmadı.
buradan başla
 
qjol :
buradan başla

Bu bilgi için teşekkürler.

Dürüst olmak gerekirse, tüccarlar/kodlama forumuna bunu zaten yapmış ve muhtemelen bana yardımcı olabilecek birinden cevap almak için geldim, her şeyi sıfırdan nasıl kodlayacağımı öğrenmek için değil.

 
Shaun :

Bu bilgi için teşekkürler.

Dürüst olmak gerekirse, tüccarlar/kodlama forumuna bunu zaten yapmış ve muhtemelen bana yardımcı olabilecek birinden cevap almak için geldim, her şeyi sıfırdan nasıl kodlayacağımı öğrenmek için değil.

Script'inizi gösterin, EA'nızı gösterin belki biri size acır ve onları birleştirir. . .
 
Shaun :

Bu bilgi için teşekkürler.

Dürüst olmak gerekirse, tüccarlar/kodlama forumuna bunu zaten yapmış ve muhtemelen bana yardımcı olabilecek birinden cevap almak için geldim, her şeyi sıfırdan nasıl kodlayacağımı öğrenmek için değil.

tamam, kodunu göster ve sana yardım etmeye çalışacağız ama elbette eminim ki tüm kodu senin için yapmamı beklemiyorsun
 

Teşekkürler beyler!

Tavsiyenize uyarak, EA'mın içine şöyle bir şey yazdım:

 if (MyCondition)
{
   PlaySound ( "my_alert.wav" );
     if ( MessageBox ( "Do you really want to run the script?" , 0 , MB_YESNO | MB_ICONQUESTION )!= IDNO )
     { 
      MyScript();
      DisableAllEA();
      Sleep(3000);    
     }
  }

MyCondition tarafından tanımlanan belirli bir durumda, bu benim uyarımı çalar, böylece neler olup bittiğini kontrol etmem gerektiğini duyabilirim.

Komut dosyasını çalıştırmak isteyip istemediğimi soran bir mesaj kutusu çıkıyor - bu, tüm pozisyonları kapat komut dosyasıdır.

[EVET] düğmesine tıkladığımda, komut dosyası yürütülür - tüm konumları kapatır - ve MT4'te [Uzmanlar] düğmesini devre dışı bırakır.

Elbette, bunu yapmak için bir nedeniniz olmadığı sürece, Uzmanları devre dışı bırakmanız gerekmez.

Bir sonraki döngüde EA'nız koşulu bulamazsa, komut dosyasını tetiklemeyecektir.

Açıkçası, bu sadece bir geçici çözüm ve mükemmel bir çözüm değil, çünkü EA her tick üzerinde döngüye devam ediyor.

Ve komut dosyası çalıştırılana kadar Uzmanları devre dışı bırakamazsınız, çünkü komut dosyası tek başına değil EA'nın içindedir.

not

Bunun çalışması için EA'nızın başına aşağıdakileri eklemeniz gerekir:

#include < WinUser32.mqh >
 

Az önce başka bir çözüm düşündüm!!!

Komut dosyanıza bir kısayol tuşu (HOTKEY) atayabilirsiniz.

Böylece klavye olayını taklit edebilirsiniz.

Çok daha iyi:

 if (MyCondition)
{
      EnableScript();
      DisableAllEA();
      Sleep(3000);
}

Alarm.wav'ınızı bağımsız komut dosyasına ve mesaj kutusuna da ekleyebilirsiniz.

Ayrıca, durumla ilgili eyleminizden sonra, Uzmanları etkinleştirip etkinleştirmemeye karar verebilirsiniz.

Bu şekilde, aşırı istifleme riskine girmezsiniz.

Tabii ki, bunun önemli olaylar hakkında daha fazla çalışmaya ihtiyacı var.

Ctrl+E klavye olayının işlevi:

 void DisableAllEA() {
   keybd_event( 17 , 0 , 0 , 0 ); // CTRL down
   keybd_event( 69 , 0 , 0 , 0 ); // E down
   keybd_event( 69 , 0 , 2 , 0 ); // E up
   keybd_event( 17 , 0 , 2 , 0 ); // CTRL up
}

Biraz googling ile her tuş için sayı kodları bulabilirsiniz.

Veya şu bağlantıyı kullanabilirsiniz: https://www.mql5.com/en/code

Elbette keybd_event, mql4'ün bir parçası değil, bu yüzden şunlara ihtiyacınız var:

 #include <WinUser32.mqh>
 

Ve bu arada!

Hiç kimse bir gösterge olarak grafikte bir EA uygulamaktan yoruldu mu?

Aynı şekilde çalışması gerekir!

Ve bir grafik üzerinde çalışan herhangi bir sayıda göstergeye sahip olabilirsiniz!

Komut dosyalarını gösterge olarak uygulamayı denedim ve bu gayet iyi çalışıyor!

 
Dadas :

Ve bu arada!

Hiç kimse bir gösterge olarak grafikte bir EA uygulamaktan yoruldu mu?

Aynı şekilde çalışması gerekir!


Bir Göstergeden alım satım yapamazsınız, yalnızca Komut Dosyalarından ve EA'lardan.
 
RaptorUK :

Bir Göstergeden alım satım yapamazsınız, yalnızca Komut Dosyalarından ve EA'lardan.


Yani, bir EA bir komut dosyası olarak çalışabilir mi? Bir döngüde mi?

Yalnızca sonsuz bir döngüdeyken bilgisayar eninde sonunda çökecektir.

Her 50ms'de bir veya bunun gibi her saniye gibi bir ticker tarafından kontrol edilen bir döngüde bir komut dosyasını tetiklemenin bir yolu var mı?

MT4 keneleri ile değil mi?

 
RaptorUK :

Bir Göstergeden alım satım yapamazsınız, yalnızca Komut Dosyalarından ve EA'lardan.


Ve başka bir düşünce:

Böylece komut dosyasına göre sipariş vermek için klavye olay işlevini kullanabilirsiniz.

1. Siparişleri otomatik olarak vermek için bir Komut Dosyası yazın.

2. Ona bir HOTKEY atayın.

3. EA'da Gösterge olarak çalışan klavye olayını tanımlayın.

Ardından, siparişleri kapatmak için de aynısını yapabilirsiniz.

İşte aldın! Gösterge olarak çalışan ve işini yapan bir EA!

Bu yolun tek dezavantajı, bir Göstergeyi klavye olayıyla devre dışı bırakamamanızdır - yalnızca manuel olarak grafikten kaldırın.

Neden: