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

 
hoz :

Bu kahrolası hatayı kendim aldım. Aslında burada hiçbir mantık yok. https://book.mql4.com/en/appendix/limits gereksinimlerine göre bekleyen bir emir açmak için, açılış fiyatı Tekliften (satış için) düşük veya Talepten (satın almak için) yüksek olmalıdır. Her şeyi gereksinimlere göre yapıyorum.

Periyodik olarak, 0 ve 130 hatası var. 130. hata, sipariş açarken değil, değiştirirken olabilecek yanlış durdurma hatası olmasına rağmen.

Ekranda, pr işlevi kullanılarak ekranda görüntülenen durum ve baskı.

Lütfen bana bu söveden nasıl kurtulacağımı söyle. Bu hatadan zaten bıktım. Mantıken, konunun dışına çıktı.

Victor, yukarıdaki ve aşağıdakilere uymanın yanı sıra, burada önleyici bir boşluk kullanmanız gerekir, çünkü. emir gönderilirken, fiyat sabit durmaz, bu yüzden yasak bölgeye adım atmak veya adım atmak ortaya çıkar! Değişiklik ve daha fazla kayma ile olduğu gibi yerleştirin ve her şey yoluna girecek! Real üzerinde hatasız çalışıyorum! İyi şanlar!
 
borilunad :
Victor, yukarıdaki ve aşağıdakilere uymanın yanı sıra, burada önleyici bir boşluk kullanmanız gerekir, çünkü. emir gönderilirken, fiyat sabit durmaz, bu yüzden yasak bölgeye adım atmak veya adım atmak ortaya çıkar! Değişiklik ve daha fazla kayma ile olduğu gibi yerleştirin ve her şey yoluna girecek! Real üzerinde hatasız çalışıyorum! İyi şanlar!


Boris, yani kayma zaten 3, anladığım kadarıyla bu 3 puan. O zaman daha fazlası nerede?

Böyle mi demek istiyorsun:

 bool OpenBuy()
{
   int ticket = - 1 ;
   double OOP = High[ 1 ] + i_thresholdToUp * pt;
   pr ( "ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
   pr ( "g_stopLevel = " + g_stopLevel);

   if ((ND(OOP) - g_stopLevel)> Ask)
       ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(OOP), 3 , 0 , 0 , NULL , i_magic, 0 , CLR_NONE );
   else pr ( "Ордер послать не удалось " + GetLastError ());
   
   if (ticket > 0 )
   {
 //      lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                             // .. успешно выполнены
       return ( true );
   }
}

Gereksiz işlevleri buraya koymamak için nasıl daha yetkin uygulanacağını düşünüyorum.

 

hoz, y Burada ışıklar kapanırken daha da kısalmayı düşündüm. Bakınız: bir değişken koyarsanız

 bool _if=(( 2 *trend- 1 )*Δ≥ const ); //аналогично _if=(±Δ≥const)

cnt=cnt+step'imiz var, burada

 if (_if) step= 1 ;
} else { step=-cnt;
}

Ama 1=cnt/cnt, a -cnt=cnt/(-1), fark sadece paydadadır. Şimdi x^0=1, x^1=x, yani şunu hatırlayın. Boole değişkenimizi _if göstergeye koyabilirsiniz, yani adım= cnt/a*(cnt^_if) ; nerede

 if (_if) a=1;
} else { a=-1;
}

Ancak ±a, 2*_if-1'e eşittir, yani.

 bool _if=(( 2 *trend- 1 )*Δ≥ const ); //аналогично _if=(±Δ≥const)
int step=cnt/( 2 *_if- 1 )*(cnt^_if); //принимает два значения: 1 и -cnt
cnt=cnt+step;

Veya basitleştirin

 bool _if=(( 2 *trend- 1 )*Δ≥ const ); cnt=cnt+cnt/(( 2 *_if- 1 )*(cnt^_if));
 
hoz :


Boris, yani kayma zaten 3, anladığım kadarıyla bu 3 puan. O zaman daha fazlası nerede?

Böyle mi demek istiyorsun:

Gereksiz işlevleri buraya koymamak için nasıl daha yetkin uygulanacağını düşünüyorum.

5 için 30 gerekiyorsa, 4 karakter için 3 kaymasını umuyorum!
 

Beyler, bana piyasanın açıldığı ve piyasanın kapandığına dair bir mesaj görüntüleyen senaryoyu söyleyin.

yani 0.00.01 Pazartesi geldiğinde piyasanın açıldığı mesajını veriyor, ardından piyasanın kapandığına benzer şekilde "piyasa açık" mesajı çıkıyor.

Bir senaryo yazdım ama nedense çalışmıyor ((anlamama yardım et.

 // определяем начало и конец торгов.
       // начало торгов в понедельник в 0.00.01
      
       if (DayOfWeek()== 1 && Hour()== 0 && Minute()== 0 && Seconds()== 01 )
      {
         Alert ( "Рынок открылся." );
      }
       // конец торгов в Пятницу в 23.59.59
       if (DayOfWeek()== 5 && Hour()== 23 && Minute()== 59 && Seconds()== 59 )
      {
         Alert ( "Пятница, Рынок закрылся." );
      }

 

SATIN ALMA ve HÜCRE DURDURMA bekleyen emirleri aynı anda ve o andaki fiyattan minimum tetikleme adımıyla aynı anda verebilen herhangi bir robot var mı? Kısaca haberin altında. Ellerimle yapamam.
 
hoz :

Bu kahrolası hatayı kendim aldım. Aslında burada hiçbir mantık yok. https://book.mql4.com/en/appendix/limits gereksinimlerine göre bekleyen bir emir açmak için, açılış fiyatı Tekliften (satış için) düşük veya Talepten (satın almak için) yüksek olmalıdır. Her şeyi gereksinimlere göre yapıyorum.

Periyodik olarak, 0 ve 130 hatası var. 130. hata, sipariş açarken değil, değiştirirken olabilecek yanlış durdurma hatası olmasına rağmen.

Ekranda, pr işlevi kullanılarak ekranda görüntülenen durum ve baskı.

Lütfen bana bu söveden nasıl kurtulacağımı söyle. Bu hatadan zaten bıktım. Mantıken, konunun dışına çıktı.

130. hata mutlaka emirleri durdurmak değildir. Bu aynı zamanda, en az int MarketInfo(Symbol(), MODE_STOPLEVEL) mesafesinde bekleyen emirlerin verilmesi için de mesafedir.
 
borilunad :
5 için 30 gerekiyorsa, 4 karakter için 3 kaymasını umuyorum!

Yani test cihazında hiç kayma yok, buna gelirsek ... Düzeltildi 30 .

artmedia70 :
130. hata mutlaka emirleri durdurmak değildir. Bu aynı zamanda, en az int MarketInfo(Symbol(), MODE_STOPLEVEL) mesafesinde bekleyen emirlerin verilmesi için de mesafedir.

İyi:

 //+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = - 1 ;
   double OOP = High[ 1 ] + i_thresholdToUp * pt;
   pr ( "ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
   pr ( "g_stopLevel = " + g_stopLevel);

   if (ND(OOP)> (Ask + g_stopLevel))
       ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(OOP), 30 , 0 , 0 , NULL , i_magic, 0 , CLR_NONE );
   else pr ( "Ордер послать не удалось " + GetLastError ());
   
   if (ticket > 0 )
   {
 //      lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                             // .. успешно выполнены
       return ( true );
   }
}

nerede:

g_stopLevel = MarketInfo( Symbol (),MODE_STOPLEVEL) * pt;

Her şey Artem'inizle aynı şekilde yazılmıştır. Dün de aynı mantıktı. Ama hatalar devam ediyor. Test cihazında çalışmasını sağlamak için ekstra puan atmak, herhangi bir alıntı veya kaymanın olmadığı hiçbir anlam ifade etmiyor.

Aynı tırmıkla tekrar karşılaşmamak için burada nasıl daha evrensel davranabilirim? Ne de olsa ne kadar danışmanla tanışsam da, kayma dışında hiçbir yere fazladan 2-3 puan atmıyorlar. Sonuçta, o zaman 6pp çıkacak. gerekli fiyattan sapma. Ve bu artık doğru değil. Uzman Danışmanlar hem keneler hem de dakikalar için yazılır. Ve görünüşe göre ticarette doğruluk olabilir. Bu yüzden doğruluğun mevcut olmasını ve büyük girintilere sahip olmamasını istiyorum ...

 

Diğerleri!

küresel bir soru

Danışmanı sakince çalıştırıp hata ayıklayabilmeniz için hafta sonu terminalde kene akışını bir şekilde almak mümkün mü?

çünkü hafta içi yazmak normal, çok zor, iş/mezat vs.

Bir EA'yı başlatmak için tek bir tıklama uygun değildir, belirli bir aralıkta tam olarak tıklama akışına ihtiyacınız vardır

Doğada böyle bir şey var mı?

MT4 sunucuları hafta sonları teklif akışını taklit ediyor mu?

 
pasha5282 :

Beyler bana piyasanın açıldığı ve piyasanın kapandığı mesajını veren bir script söyleyin.

yani 0.00.01 Pazartesi geldiğinde piyasanın açıldığı mesajını veriyor, ardından piyasanın kapandığına benzer şekilde "piyasa açık" mesajı çıkıyor.

Bir senaryo yazdım ama nedense çalışmıyor ((anlamama yardım et.


bu bir komut dosyasıysa ve scpirts klasöründe bulunuyorsa, bir kez çalıştı ve grafikten kaldırıldı. Kalıcı olarak bırakmak için kodunuzu bunun içine girin


 int start()
{
   while (! IsStopped ())
   {
       // вот сюда

       Sleep ( 500 );
   }
}