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

 
Dadas :


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?


Buna kendim cevap vermeye çalışacağım:

Bu mümkün değildir, çünkü start() işlevi, aracının keneleri anlamına gelen yeni tırnak işaretleri ile çalıştırılır.

Bu nedenle start() işlevinde bir döngünüz olsa bile, yalnızca yeni bir onay işareti geldiğinde döngüye girer.

Bu yüzden komisyoncuya karşı kazanamazsınız!

Yine de, EA'mı şöyle bir Komut Dosyası olarak çalıştırdığımda:

 int start() {

while ( 1 == 1 ) {

MyEA();

}
}

bilgisayarım bu döngü nedeniyle gecikmeye başladı.

Bunu Pazar günü denedim, bu yüzden piyasa kapalıydı.

 
Dadas :


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?


Bir komut dosyası, start() işlevine sonlu/sonsuz bir döngü eklemediğiniz sürece bir kez çalışır. Komut dosyasını kendi oluşturduğunuz onay işaretiyle tetiklemek istiyorsanız, onu bir EA yapın ve çevrimdışı bir grafiğe koyun.
 
Dadas :


Yine de, EA'mı şöyle bir Komut Dosyası olarak çalıştırdığımda:

bilgisayarım bu döngü nedeniyle gecikmeye başladı.


Bilgisayarınızın bir yükseltmeye ihtiyacı var. . . veya değiştirilecek.
 
RaptorUK :

Bilgisayarınızın bir yükseltmeye ihtiyacı var. . . veya değiştirilecek.

Bu oldukça doğru! Eski bir tanesidir.
 
RaptorUK :

Bir komut dosyası, start() işlevine sonlu/sonsuz bir döngü eklemediğiniz sürece bir kez çalışır. Komut dosyasını kendi oluşturduğunuz onay işaretiyle tetiklemek istiyorsanız, onu bir EA yapın ve çevrimdışı bir grafiğe koyun.

Çevrimdışı bir grafikte ticaret yapamam.
 
Dadas :

Çevrimdışı bir grafikte ticaret yapamam.
Neden ?
 

Babalar 2012.08.12 16:34
Dadalar :


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?


Buna kendim cevap vermeye çalışacağım:

Bu mümkün değildir, çünkü start() işlevi, aracının keneleri anlamına gelen yeni tırnak işaretleri tarafından çalıştırılır.

Bu nedenle start() işlevinde bir döngünüz olsa bile, yalnızca yeni bir onay işareti geldiğinde döngüye girer.

Bu yüzden komisyoncuya karşı kazanamazsınız!

Yine de, EA'mı şöyle bir Komut Dosyası olarak çalıştırdığımda:

 int start() {

while ( 1 == 1 ) {

MyEA();

}
}

bilgisayarım bu döngü nedeniyle gecikmeye başladı.

Bunu Pazar günü denedim, bu yüzden piyasa kapalıydı.

merhaba babalar,

Komut dosyası bir onay işareti olmadan yürütülür, EA bir onay işareti ile yürütülür.

Sonsuz döngü kullanırken, bir Uyku () ekleyin ( https://docs.mql4.com/common/Sleep )

Aşağıdaki kodu script olarak deneyin, internet bağlantısını kapatın, görev yöneticisini açın ve scripti grafiğe ekleyin. Betik, bir onay işaretine ihtiyaç duymadan ve çok fazla işlemci kullanımı kullanmadan sonsuz döngüye girer.

   int n;
   while ( IsStopped () == false) // or while (true)
    {
    n++;
     Alert (n);
    
     Sleep ( 500 ); // add this !
    }

 
.
 
RaptorUK :
Neden ?


Beni aydınlatın lütfen!

Çevrimdışı bir grafikte gerçek zamanlı canlı ticareti nasıl yapabilirim?

 
onewithzachy :

merhaba babalar,

Komut dosyası bir onay işareti olmadan yürütülür, EA bir onay işareti ile yürütülür.

Sonsuz döngü kullanırken, bir Uyku () ekleyin ( https://docs.mql4.com/common/Sleep )

Aşağıdaki kodu script olarak deneyin, internet bağlantısını kapatın, görev yöneticisini açın ve scripti grafiğe ekleyin. Betik, bir onay işaretine ihtiyaç duymadan ve çok fazla işlemci kullanımı kullanmadan sonsuz döngüye girer.


Çok teşekkürler!

O kadar basit ki, bunu kendim düşünmeliydim...

Yorgun, sorguluyorum....... Eski bilgisayarım gibi - LOL!

Gerçi, bilirsin, ben biraz daha farklı düşünüyordum.

MT4 canlı alım satımında tıklamayı nasıl geçersiz kılacağımı düşünüyorum!

Mesele şu ki, canlı ticaret sırasında keneler EA'yı kontrol eder ve böylece komisyoncu da yapabilir.

Başka bir deyişle, EA'mın siparişi bir koşul altında kapatmasını istiyorsam - EA'mın tam olarak bunu yapmasını istiyorum, kesinlikle, belki değil.

Yeniden teklifler dışında (ki bu konuda komisyoncuyu değiştirmekten başka bir şey yapamam), çizelgemde çok sık görüyorum

siparişimin kapanması gerektiğini, ancak bir sonraki onay işaretine kadar askıda kaldığını ve ardından kaybeder.

EA'ma yazarsam:

 if ( AccountProfit ()> 0 ) { CloseAllOrders(); }

o zaman @ 1 Pip kar veya daha fazlasını kapatmasını istiyorum. 1 Pip'e takılıp hiçbir şey yapmamasını beklemiyorum!

BTW, EURUSD üzerinde 1 Pip'lik sabit spread ile işlem yapıyorum.

Bu nedenle, bariz olana ihtiyacım yok ve Sleep() de çevrimdışı geriye dönük testler dışında bir çözüm değil.

BTW, geriye dönük herhangi bir test hiçbir şey için iyi değildir - gerçek zamanlı test değildir.

Pekala, bazı gözlemler ve çizelge çalışması için çok şey öğrenmek iyidir!

Ancak, gerçek zamanlı ticarette geleceği bilemezsiniz ve EA'nıza gerçekten güvenmediğiniz sürece hatalar yaparsınız!

Grafiklerde gördüğünüzden daha fazla güvenin! - Bu en zor kısım!

Arkadaşlar lütfen yazılarımı anlayışla okuyun!

Neden: