[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 644

 
Myth63 :


Gerçek şu ki, MQL'de programlama konusunda pek iyi değilim ve Uzman Danışmanım BASIC =) ilkesine dayanıyor =) Açık bir siparişe bir değişken atanıyor. Terminalde çıkış yaptığım yazıyor ve bir sipariş açıldığında bu değişkenin değeri kayboluyor. Burada, bir relog meydana gelirse, açık pozisyonların varlığını kontrol edecek ve değişkenlere robot tarafından verilen değerleri atayacak şekilde nasıl yapılacağını düşünüyorum. Ve danışman daha sonra testte kötü okumalar olmadığını gösteriyor.

Neyi kaydetmek istediğinize bağlı olarak (hangi bilgiler), farklı seçenekler kullanabilirsiniz:

  • sipariş bilgileri yorumunda saklanabilir ve ardından yorumdan okunabilir;
  • gerekli bilgiler bir dosyaya yazılabilir - yavaş bir işlem;
  • peki ve en sık kullanılan seçenek terminalin global değişkenlerine yazmaktır.
 
FelixFX :

Zor değilse - bir örnek. Anladığım kadarıyla döngü tamamlanana kadar veriler güncellenmeyecek mi?
 int start()
{
//----
     while (! IsStopped () && IsExpertEnabled ())
    {fMineFunction();}
//----
     return ( 0 );
}
 
TarasBY :

Bu sonsuz döngü boyunca sadece aynı veriler mi kullanılacak? Yeni onay işaretli veriler güncellenecek mi, güncellenmeyecek mi?
 
Myth63 :


Gerçek şu ki, MQL'de programlama konusunda pek iyi değilim ve Uzman Danışmanım BASIC =) ilkesine dayanıyor =) Açık bir siparişe bir değişken atanıyor. Terminalde çıkış yaptığım yazıyor ve bir sipariş açıldığında bu değişkenin değeri kayboluyor. Burada, bir relog meydana gelirse, açık pozisyonların varlığını kontrol edecek ve değişkenlere robot tarafından verilen değerleri atayacak şekilde nasıl yapılacağını düşünüyorum.

Sihirli sayıdan falan mı bahsediyorsun? Size yardımcı olacak yeterli bilgi yok ... ne tür bir değişken, nasıl atandığı - buradan dans etmeniz gerekiyor.

Ve danışman daha sonra testte kötü okumalar olmadığını gösteriyor.

100 işlem gösterge değil, başarılı bir tarih parçasıdır. İşte 2-3 yıl için birkaç bin işlem - buna zaten güvenilebilir.
 
FelixFX :

Bu sonsuz döngü boyunca sadece aynı veriler mi kullanılacak? Yeni onay işaretli veriler güncellenecek mi, güncellenmeyecek mi?
Numara. Güncellemek için buna ihtiyacınız var. Döngü hakkında soru sorulduğunda, site arama motoru kaç sayfa olduğunu gösterir. Okumak.
 
FelixFX :

Bu sonsuz döngü boyunca sadece aynı veriler mi kullanılacak? Yeni onay işaretli veriler güncellenecek mi, güncellenmeyecek mi?
Döngü, işlevinizi başlatmak için bir sonraki onay işaretinin gelmesini beklemeden "bir daire içinde" yapmanızı sağlar. Hangi verileri soruyorsunuz?
 
pliz bana yerleşik bir işlev olup olmadığını söyle, böylece yazdığım bir işlevi, her bir tick üzerinde değil, sadece her çubuğun açılışında çalıştırabilirim. elle yazmak zor değil gibi görünüyor, ancak kodun bir kısmı keneler tarafından ve bir kısmı çubuklarla yürütüldüğünde, program çok karışıyor) şimdiden teşekkürler)
 
Qwertee :
pliz bana yerleşik bir işlev olup olmadığını söyle, böylece benim tarafımdan yazılan belirli bir işlevi, her bir onay işareti üzerinde değil, yalnızca her çubuğun açılışında çalıştırabilirim. elle yazmak zor değil gibi görünüyor, ancak kodun bir kısmı keneler tarafından ve bir kısmı çubuklarla yürütüldüğünde, program çok karışıyor) şimdiden teşekkürler)

yani sadece yeni bir bar açma anını belirleyip işlevinizi gerçekleştirirsiniz.

Yeni bir çubuğun görünümünü , çubuğun açılış saatini hatırlayarak ve ardından mevcut 0 bar saati ile karşılaştırarak belirleyebilirsiniz. Yeni zaman öncekinden daha büyükse, yeni bir çubuğumuz var.

 

Sergeyev tavsiye için teşekkürler, etkili görünüyor)

tamam bir dakika daha

EA'm aşağıdaki dallara sahiptir:

if( dönem== "M15")
{
// açık satın almayı kontrol et
uyarı(satın al);

if(satın al=="satın al")

uyarı(1);

................

}

genellikle aptalca iç içe eğer. ANCAK. if(period=="M15") koşulu karşılanır ve uyarı bir sonuç verir ve satın alırken, if(buysell=="buy") koşulu karşılanmaz ve Alert(1) komutu bile çalıştırılmaz. cehennem, ancak her iki koşul da sözdizimsel olarak aynıdır, ancak neden biri yerine getirilir ve diğeri olmaz?

 
sergeev :

yani sadece yeni bir bar açma anını belirleyip işlevinizi gerçekleştirirsiniz.

Yeni bir çubuğun görünümünü, çubuğun açılış saatini hatırlayarak ve ardından mevcut 0 bar saati ile karşılaştırarak belirleyebilirsiniz. Yeni zaman öncekinden daha büyükse, yeni bir çubuğumuz var.

Buraya bir şeyler yazacağım:

 int time.marker;

void start() {
   if (time.marker!=Time[ 0 ]) {
      time.marker=Time[ 0 ];
       // тут то что буде исполнятся только на открытии бара
      }
   // тут то что буде исполнятся на каждом тике
   }