yardım edin lütfen [çözüldü] - sayfa 2

 
KODU GÖSTER.
 

bool order= 0 ;
int ticket;

void OnTick ()
  {


   if (order== 0 )
    {
     double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
     double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );

     if ( MathMax (up,down) < Bid )

     int ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
      {
       if ( ticket!= 1 )
        {
         order= 1 ;
        }
      }
    }
  }
kullanmadığım diğer tüm işlevleri sildim, tüm kodum sadece bu
Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 

Çifte bilet beyanınız.

bool order= 0 ;
int ticket;

void OnTick ()
  {


   if (order== 0 )
    {
     double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
     double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );

     if ( MathMax (up,down) < Bid )

     int ticket = OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
      {
       if ( ticket!= 1 )
        {
         order= 1 ;
        }
      }
    }
  }

Bilet beyanı gizler ... falan filan? bakın ben insan derleyiciyim.

İkinci int'yi kaldırın .

 
mrluck1 :

Koydum

bool düzeni ve

int bilet

global değişkenlerde ve kodun geri kalanında OnTick'te, ancak şimdi hala herhangi bir giriş yapmıyor

Derlenmemiş, denenmemiş

void OnTick ()
  {
   double up   = iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 ),
          down = iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
   static bool was_above = true ;
   bool is_above = ( MathMax (up,down)< Bid );
   if (!was_above && is_above && open_orders()< 1 )
     {
       if ( OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point )< 0 )
        {
         printf ( "OrderSend() failed. Error code: %i" , GetLastError ());    
        }
     }
   was_above = is_above;
  }

int open_orders()
  {
   int count = 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) // good habit to count down
     {
       if (! OrderSelect (i, SELECT_BY_POS ))   continue ;   // select the order
       if ( OrderSymbol () != _Symbol )       continue ;   // optional check for same symbol
       if ( OrderMagicNumber ()!= magic_no)   continue ;   // optional check for magic number
       if ( OrderType () < 2 )                count++;   // 0 == OP_BUY and 1 == OP_SELL
     }
   return (count);
  }
 

Marco: Yinelenen int'yi kaldırdım, ancak şimdi takas yapılmadı, eğer fiyat> ichimoku cloud ise 1 ticarete ihtiyacım var, bu kod ilk önce harikaydı, ancak eğer yeni ticaret oluşturmaya devam ettiyse

fiyat bulutun üzerindeydi, sadece komut dosyasının 1 ticaretten sonra duracağı şekilde kodlamak için yardıma ihtiyacım var.

Honest Knave: Kodunuzu denedim, az önce eksik olan magic_no'yu tanımladım, iyi çalışıyor, yeni ticareti bekliyor, fiyat tekrar buluta dokunuyor, sonraki projeler için gerçekten faydalı olacak, ancak

sadece 1º takasından sonra durmasına ihtiyacım var, ne yapmalıyım?

yardımlarınız için hepinize teşekkür ederim

 
bool order= 0 ;
int ticket;

void OnTick ()
  {


   if (order== 0 )
    {
     double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
     double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );

     if ( MathMax (up,down) < Bid )

    ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
      {
       if ( ticket!= 1 )
        {
         order= 1 ;
        }
      }
    }
  }

Sorun bu.

bool order= 0 ;
int ticket;

void OnTick ()
  {


   if (order== 0 )
    {
     double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
     double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );

     if ( MathMax (up,down) < Bid )

    ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
      {
       if ( ticket>- 1 )
        {
         order= 1 ;
        }
      }
    }
  }


Öyleyse bunu dene ve birkaç gönderi önce işaret ettim.

Marco vd Heijden :

Ayrıca, OrderSend'in ya bilet numarasını döndürdüğünü ya da başarısız olursa -1 eksi bir olduğunu unutmayın.

Görmek.
 
mrluck1 :

Honest Knave: Kodunuzu denedim, az önce eksik olan magic_no'yu tanımladım, iyi çalışıyor, fiyat tekrar buluta dokunursa yeni ticareti bekliyor, sonraki projeler için gerçekten faydalı olacak, ancak

sadece 1 işlemden sonra durmasına ihtiyacım var, ne yapmalıyım?

yardımlarınız için hepinize teşekkür ederim

1'den fazla işlem yapmamalı...? Bu şunu yapar:

void OnTick ()
  {
   double up   = iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 ),
          down = iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
   static bool was_above = true ;
   bool is_above = ( MathMax (up,down)< Bid );
   if (!was_above && is_above && open_orders()< 1 )
     {
       if ( OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point )< 0 )
        {
         printf ( "OrderSend() failed. Error code: %i" , GetLastError ());    
        }
     }
   was_above = is_above;
  }

int open_orders()
  {
   int count = 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) // good habit to count down
     {
       if (! OrderSelect (i, SELECT_BY_POS ))   continue ;   // select the order
       if ( OrderSymbol () != _Symbol )       continue ;   // optional check for same symbol
       if ( OrderMagicNumber ()!= magic_no)   continue ;   // optional check for magic number
       if ( OrderType () < 2 )                count++;   // 0 == OP_BUY and 1 == OP_SELL
     }
   return (count);
  }
 

Dürüst Knave:

EA'nız harika, ancak fiyat tekrar ichimoku bulutuna düşerse ve sonra geri dönerse yeni işlemler yaratır. Benim yaşadığım problem gibi aynı mumdaki emirleri tekrarlamıyor ve bana verdiğiniz bu örnekten yeni şeyler yaratmak için çok şey öğreneceğim.

EA'lar, ancak ilk ticaretten sonra EA veya komut dosyasının hemen kapanacağını kodlamanın bir yoluna ihtiyacım var, bu yüzden şimdiye kadar yapılmış 1 ticarete ihtiyacım var.

Marco: Yeni güncellemenizi denedim, ancak herhangi bir işlem yapmıyor, en son gönderdiğiniz şekilde koydum, bilette ikinci int'yi kaldırdım. Ama ilk ticaret asla strateji test cihazında yapılmaz , şimdi ne yapmalı?

 
mrluck1 :

Dürüst Knave:

EA'nız harika, ancak fiyat tekrar ichimoku bulutuna düşerse ve sonra geri dönerse yeni işlemler yaratır. Benim yaşadığım problem gibi aynı mumdaki emirleri tekrarlamıyor ve bana verdiğiniz bu örnekten yeni şeyler yaratmak için çok şey öğreneceğim.

EA'lar, ancak ilk ticaretten sonra EA veya komut dosyasının hemen kapanacağını kodlamanın bir yoluna ihtiyacım var, bu yüzden şimdiye kadar yapılmış 1 ticarete ihtiyacım var.

Ne demek istediğini anlamıyorum.

Bu kod aynı anda 1'den fazla sipariş açamaz.

Ama emir kapanırsa ve tetik tekrar olursa, bir başkasını açar.

HİÇ tek bir işlemin açılmasını istediğinizi mi söylüyorsunuz?

 
honest_knave :

Ne demek istediğini anlamıyorum.

Bu kod aynı anda 1'den fazla sipariş açamaz.

Ama emir kapanırsa ve tetik tekrar olursa, bir başkasını açar.

HİÇ tek bir işlemin açılmasını istediğinizi mi söylüyorsunuz?

Evet efendim, şimdiye kadar sadece 1 ticaret yapıldı, ancak örneğiniz harikaydı, yeni ea'lar oluşturmak için temel olarak çok faydalı olacak