Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
EA'larda OnStart() yok ama ne demek istediğinizi anladım. Ancak, OP, yorumlarınıza yanıt olarak bile şunları söyledi ve alıntı yapıyorum:
Evet, OnTick() demek istedim. "EA çalışırken" hala çok fazla anlam yüklüyorsunuz. Bu, "EA bir çizelgeye bağlıyken, yani tüm kullanım ömrü boyunca" yerine "EA OnTick()'i yürütürken" anlamına gelmez, hatta en makul şekilde anlamına gelmez.
ParanoyakX'ten daha fazla bilgiye ihtiyacımız var.
Evet, OnTick() demek istedim. "EA çalışırken" hala çok fazla anlam yüklüyorsunuz. Bu, "EA bir çizelgeye bağlıyken, yani tüm kullanım ömrü boyunca" yerine "EA OnTick()'i yürütürken" anlamına gelmez, hatta en makul şekilde anlamına gelmez.
ParanoyakX'ten daha fazla bilgiye ihtiyacımız var.
Merhaba millet,
şuna bir açıklık getireyim. Kodum, önceki çubuklarda çok temel bir kalıp arıyor ve bir siparişin açılıp açılmayacağına karar verecek, ancak yeni bir siparişin açılması yalnızca yeni bir çubuk geldiğinde kontrol edilecek. ne demek son çubuğun kapanmasını bekliyorum, sonra deseni kontrol et tamam mı siparişi açacağım. yani yeni bar açılışında sipariş açmak oluyor. @jjc'nin dediği gibi, kalıbımın ne zaman başlayıp bittiği, en yüksek ve en düşük değerin ne olduğu vb. gibi küresel değişkenlerde temel kalıp bilgilerini tutuyorum.
Bir şekilde EA'yı yeniden çalıştırmam gerekirse, bu temel bilgileri (kalıp başlangıç ve bitiş çubuğu, en yüksek, en düşük fiyatlar vb.) yeniden bulmak ve global değişkenlerimi yeniden doldurmak istiyorum, bu yüzden buna ihtiyacım var. Siparişimi ne zaman kapatacağıma karar vermek için başlangıç ve bitiş bilgilerini kullanacağım. yani EA çalışırken OnInit'te yeni bir bar açılmaması yeterlidir, sorun değil.
Evet, OnTick() demek istedim. "EA çalışırken" hala çok fazla anlam yüklüyorsunuz. Bu, "EA bir çizelgeye bağlıyken, yani tüm kullanım ömrü boyunca" yerine "EA OnTick()'i yürütürken" anlamına gelmez, hatta en makul şekilde anlamına gelmez.
ParanoyakX'ten daha fazla bilgiye ihtiyacımız var.
Merhaba millet,
şuna bir açıklık getireyim. Kodum, önceki çubuklarda çok temel bir kalıp arıyor ve bir siparişin açılıp açılmayacağına karar verecek, ancak yeni bir siparişin açılması yalnızca yeni bir çubuk geldiğinde kontrol edilecek. ne demek son çubuğun kapanmasını bekliyorum, sonra deseni kontrol et tamam mı siparişi açacağım. yani yeni bar açılışında sipariş açmak oluyor. @jjc'nin dediği gibi, kalıbımın ne zaman başlayıp bittiği, en yüksek ve en düşük değerin ne olduğu vb. gibi küresel değişkenlerde temel kalıp bilgilerini tutuyorum.
Bir şekilde EA'yı yeniden çalıştırmam gerekirse, bu temel bilgileri (kalıp başlangıç ve bitiş çubuğu, en yüksek, en düşük fiyatlar vb.) tekrar bulmak ve global değişkenlerimi tekrar doldurmak istiyorum, bu yüzden buna ihtiyacım var. Siparişimi ne zaman kapatacağıma karar vermek için başlangıç ve bitiş bilgilerini kullanacağım. yani EA çalışırken OnInit'te yeni bir bar açılmaması yeterlidir, sorun değil.
Bunların hepsini OnInit() içinde YAPMAMALISINIZ. OnTick() içinde tüm bu mantığı (kurtarma dahil) yapıyor olmalısınız. Bu önemli! OnInit() 'te yapmak, öngörmediğiniz başka sorunlara neden olacak ve tüm bu mantığı yaparken EA'nızı "başlangıç" durumunda bırakacaktır. Öyleyse, doğru yap! OnInit() içinde yalnızca başlatma işleminizi (değişkenler, harici parametre kontrolleri vb.) ve OnTick() içindeki diğer her şeyi yapın.
Hayır hayır hayır! Özür dilerim açıklayamadım, her şeyi OnTick'te çalıştırıyorum. ama sadece bu kenenin yeni bir bara ait olup olmadığını kontrol ettim ve personelimi yaptım. OnInit'te çalıştırdığım şey, daha önce hesapladığım siparişleri ve kalıbı yeniden bul, yeniden hesapla. Bunun OnInit'te çalıştığını söyledim, şu anda açılan siparişin ait olduğu kalıbımı bul.
Umarım açıklayabilirim.
Hayır hayır hayır! Özür dilerim açıklayamadım, her şeyi OnTick'te çalıştırıyorum. ama sadece bu kenenin yeni bir bara ait olup olmadığını kontrol ettim ve personelimi yaptım. OnInit'te çalıştırdığım şey, daha önce hesapladığım siparişleri ve kalıbı yeniden bul, yeniden hesapla. Bunun OnInit'te çalıştığını söyledim, şu anda açılan siparişin ait olduğu kalıbımı bul.
Umarım açıklayabilirim.
Evet, bunu yazınızdan anladım! Söylediğim şey, bunu OnInit() içinde YAPMAYIN. Siparişlerinizi, kalıplarınızı ve tüm bu hesaplamaları OnTick()'te bulmalısınız.
Sadece OnTick()'te yerel bir statik değişken tanımlayın ve tüm kontrollerinizi ve kalıp tanımlamanızı yapın ve ardından değişkeni false olarak ayarlayın.
Evet, bunu yazınızdan anladım! Söylediğim şey, bunu OnInit() içinde YAPMAYIN. Siparişlerinizi, kalıplarınızı ve tüm bu hesaplamaları OnTick()'te bulmalısınız.
Sadece OnTick()'te yerel bir statik değişken tanımlayın ve tüm kontrollerinizi ve kalıp tanımlamanızı yapın ve ardından değişkeni false olarak ayarlayın.
Üzgünüm o zaman, seni daha önce yanlış anladım. Neden bunu OnInit yapmıyorum? daha uygun değil mi? Bunu yaptığımda, ilkinden sonraki her tik için, koşuyor olacağım ve bu ifade her doğru olmayacaksa. Kod üzerinde gereksiz yük olduğunu düşündüm.
OnInit'in var olmasının nedeni, global değişkenlerim gibi bir şeyi başlatmak değil mi?
Umarım açıklayabilirim.
Sanırım neden bahsettiğinizden emin olmak için bir kod görmemiz gerekiyor. Örneğin, (a) size açık ticareti nasıl yöneteceğinizi, nerede/ne zaman kapatacağınızı vb. söylediği için veya (b) tam olarak sırayla, mevcut bir açık ticareti oluşturan tarihi modeli mi arıyorsunuz açık değil. mevcut ticaretin neden açıldığını kendinize açıklayan bazı işaretler çizin.
Genel olarak OnTick()'te mümkün olduğunca çok şey yapmaya çalışmanız ve global değişkenlerde mümkün olduğunca az durum tutmanız gerektiği konusunda FMIC ile aynı fikirdeyim.
Üzgünüm o zaman, seni daha önce yanlış anladım. Neden bunu OnInit yapmıyorum? daha uygun değil mi? Bunu yaptığımda, ilkinden sonraki her tik için, koşuyor olacağım ve bu ifade her doğru olmayacaksa. Kod üzerinde gereksiz yük olduğunu düşündüm.
OnInit'in var olmasının nedeni, global değişkenlerim gibi bir şeyi başlatmak değil mi?
tavsiye için teşekkürler, işte kodumun çok basit bir versiyonu, bu benim gerçek kodum değil ama umarım bu daha açık olur.
dediğim gibi bu gerçek kod değil, kalıp bulma vb. sadece bir örnek. bu konuyu açmamın nedeni DetectExistingPattern() işlevidir .