Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 282

 

Tüm forum üyelerine merhaba.

Bilgili insanlara anlat. Bir gösterge sinyaline dayalı olarak alım satımları açan, bir sinyal sayacının programlı olarak nasıl kaydedileceği, yani. Bir Kâr Al aldıktan veya bir Teriling Stop tarafından bir emri kapattıktan sonra, EA sonraki iki sinyali atladı ve ticaret açmadı.

Yardım için minnettar olurum.

 void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo( Symbol (),MODE_STOPLEVEL);
   
   
   double AO = iIchimoku ( Symbol (), 0 ,Tenkan,Kijun,Senkou,MODE_SENKOUSPANA, 1 ); // верхняя граница облака 
   double BO = iIchimoku ( Symbol (), 0 ,Tenkan,Kijun,Senkou,MODE_SENKOUSPANB, 1 ); // нижняя граница облака 

      
   if (Volume[ 0 ]> 1 ) return ;

   if (AO>BO) // продажа
   {
   if (Open[ 1 ]>Close[ 1 ] && Close[ 1 ] < BO && Open[ 1 ]>BO) // продажа

     {
     Price = NormalizeDouble (Bid, Digits ); // округляем до нужного нам числа цифр после запятой
     if (StopLoss >= STOPLEVEL)
           if (StopLoss > 0 )
      {
       SL = Price + StopLoss* Point ; // вычисляем стоплос
       SL = NormalizeDouble (SL, Digits ); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0 ;

       if (TakeProfit > 0 )
      {
       TP = Price - TakeProfit* Point ;
       TP = NormalizeDouble (TP, Digits ); 
      }
       else TP = 0 ;

      { 
      ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage,SL,TP, "Pattern_1" ,Magic, 0 ,Red);
       return ;
      }
    }
    }
 
alexey1979621 :

Tüm forum üyelerine merhaba.

Bilgili insanlara anlat. Bir gösterge sinyaline dayalı olarak alım satımları açan, bir sinyal sayacının programlı olarak nasıl kaydedileceği, yani. Bir Kâr Al aldıktan veya bir Teriling Stop tarafından bir emri kapattıktan sonra , EA sonraki iki sinyali atladı ve ticaret açmadı.

Yardım için minnettar olurum.


Ne istediğimi bilmiyorum ama nasıl uygulayacağımı söyle.

Ve atlama sinyalleri altında tam olarak neyi temsil ediyorsunuz?:

1) Sanal anlaşma? sanki hayali bir pozisyon açıyoruz, takip ediyoruz, onu da hayali olarak kapatıyoruz (İlanım);

2) Belirli bir süre sonra bir sinyalin gelişini hesaplayın? XXX dakika içinde yeni bir sinyal gelebilir;

3) Belirli sayıda çubuktan sonra bir sinyalin gelişini hesaplayın ? XXX çubuklarından yeni bir sinyal gelebilir;

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

Ayrıca dilekler:

yapıyı değiştirin if (Volume[ 0 ]> 1 ) return ; gerçek olanı bir yana, bir demo üzerinde her zaman çalışmayacaktır;

Bir şartla daha atlatmak mümkün değil mi?

 if (StopLoss >= STOPLEVEL)         //    if (StopLoss > STOPLEVEL) так не проще?
   if (StopLoss > 0 )

doğru mantık değil, aksi takdirde ikinci koşulu yerine getirir :

 if (StopLoss >= STOPLEVEL)
   if (StopLoss > 0 ){
      SL = Price + StopLoss* Point ; // вычисляем стоплос
      SL = NormalizeDouble (SL, Digits ); // округляем до нужного нам числа цифр после запятой
   }
   else SL = 0 ;

ve daha fazlası...

 
ALXIMIKS :


Ne istediğimi bilmiyorum ama nasıl uygulayacağımı söyle.

Ve atlama sinyalleri altında tam olarak neyi temsil ediyorsunuz?:

1) Sanal anlaşma? sanki hayali bir pozisyon açıyoruz, takip ediyoruz, onu da hayali olarak kapatıyoruz (İlanım);

2) Belirli bir süre sonra bir sinyalin gelişini hesaplayın? XXX dakika içinde yeni bir sinyal gelebilir;

3) Belirli sayıda çubuktan sonra bir sinyalin gelişini hesaplayın? XXX çubuklarından yeni bir sinyal gelebilir;

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

Ayrıca dilekler:

if (Volume[ 0 ]> 1 ) yapısını return ile değiştirin ; gerçek olanı bir yana, bir demo üzerinde her zaman çalışmayacaktır;

Bir şartla daha atlatmak mümkün değil mi?

doğru mantık değil, aksi takdirde ikinci koşulu yerine getirir :

ve daha fazlası...

Ben hevesli bir yazarım, yani. Her şeye kendim ulaşıyorum, asıl şey işe yaraması. if (Volume[ 0 ]> 1 ) hem gerçek hayatta, hem demoda hem de test cihazında iyi çalışıyor. İsteklerimi gayet açık bir şekilde yazdım. Anlaşma, göstergenin sinyaliyle açılır (anlaşmayı açma koşulunu koda ekledim). Bir önceki işlem Take Profit ve Trailing Stop tarafından kapatıldıktan sonra, göstergeden 1 veya 2 veya 3 (yapılandırılabilir parametre) sinyali atlamam gerekiyor, yani. bir anlaşma açmayın. Bu yüzden indikatörden sinyal sayacına ihtiyacım var, nasıl programlayacağımı bilmiyorum o yüzden yardım istiyorum.
 

Herkese iyi günler!) Geçenlerde MQL konusuna kendimi kaptırdım ve ilk sorunlarla karşılaştım. Sonuç olarak, mevcut Expert Advisor, fonksiyona göre pozisyonlar açar , ancak bunları kapatmak istemez, bu nedenle bu piyasa emirleri, test seansının sonuna kadar durmadan tartılır. Soru, eklemi tartıştığım yer.

İşte kapanış snippet'i:

 if (Level >= 0.000100 && LevelXP>LevelXM && CountSell() > 0 )
          {
               for (i= OrdersTotal ()- 1 ; i >= 0 ; i--)
               {
                   if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true )
                   {
                       if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)
                          OrderClose(OrderTicket(), OrderLots(), Ask, Slippage);
                   }
               }
          }
 
ElhoroS :

Herkese iyi günler!) Geçenlerde MQL konusuna kendimi kaptırdım ve ilk sorunlarla karşılaştım. Sonuç olarak, mevcut Expert Advisor, fonksiyona göre pozisyonlar açar, ancak bunları kapatmak istemez, bu nedenle bu piyasa emirleri, test seansının sonuna kadar durmadan tartılır. Soru, eklemi tartıştığım yer.


1) Kapanış koşullarında bir sorun olabilir (gizli olarak verdiniz)

2) Bu kodda sadece OP_SELL'i kapatıyorsunuz ( alış için satmayı unuttunuz mu? Kapatma koşullarının doğru olduğundan emin olun)

3) Kaba kuvvet kontrolünde döviz çifti ve zaman çerçevesi için bir kontrol yoktur (neden o zaman çalıştır ve ekle?)

4) Teklif kontrolü yoktur (test cihazında her şey yolunda olmalıdır, ancak her zaman demo veya gerçek değil)

5) Artemis artmedia70 tarafından belirtildiği gibi MarketInfo( Symbol (),MODE_ASK) daha iyi olacaktır Sor - daha güncel fiyatlar verecektir

 
ALXIMIKS :


5) Artemis'in belirttiği gibi MarketInfo( Symbol (),MODE_ASK) Sor daha iyi olacak - daha güncel fiyatlar verecek

Hayır ... pekala, isim aramayı bırak artık ...
 
artmedia70 :
Hayır ... pekala, isim aramayı bırak artık...


evet, son durumu hatırlıyorum, Artyom, üzgünüm - eklenmiş.
 
ALXIMIKS :

evet, son durumu hatırlıyorum, Artyom, üzgünüm - bağlandı.
Artem + Themis = Artemis; Gurur duy, Artyom! Bu kabul! Devam etmek istiyorum!
 
borilunad :
Artem + Themis = Artemis; Gurur duy, Artyom! Bu kabul! Devam etmek istiyorum!
 
artmedia70 :
Resimler nereden ve nasıl yapıyorsunuz? Doğru, bu karakterler Themis'i kişileştirmez.
Neden: