MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 61

 

if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrBlue );
}
    if (SiparişSat< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrRed );
}

ama ihtiyacın var

if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage, slBuy ,tpBuy, NULL ,MagicNumber, 0 , clrBlue );
}
    if (SiparişSat< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage, slSell , tpSell , NULL ,MagicNumber, 0 , clrRed );
}

 
Ibragim Dzhanaev :

Yardım etmedi (

double tp,sl,OrderBuy= 0 ,OrderSell= 0 ;
double slSell,slBuy,tpSell,tpBuy;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {

   for ( int i= 0 ; i< OrdersTotal (); i++)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
         if ( OrderSymbol ()== _Symbol && OrderMagicNumber ()==MagicNumber)
           {
             if ( OrderType ()== OP_BUY ){}
             if ( OrderType ()== OP_SELL ){}
           }
     }
   double rsi= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 0 );
   double rsi1= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 1 );
//+------------------------------------------------------------------+

   double StopLossLevel;
   double TakeProfitLevel;
   if (StopLoss> 0 ) StopLossLevel= Bid -StopLoss* Point ; else StopLossLevel= 0.0 ;
   if (TakeProfit> 0 ) TakeProfitLevel= Ask +TakeProfit* Point ; else TakeProfitLevel= 0.0 ;

   tpBuy= NormalizeDouble ( Ask +TakeProfit* _Point , _Digits );
   slBuy= NormalizeDouble ( Bid -StopLoss* _Point , _Digits );

   tpSell= NormalizeDouble ( Bid -TakeProfit* _Point , _Digits );
   slSell= NormalizeDouble ( Ask +StopLoss* _Point , _Digits );
///---
   if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
     {
      tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrBlue );      
     }      
   if (OrderSell< 1 && rsi<Urov_30 && rsi1>Urov_30)
     {
      tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrRed );      
     }
  }
//+------------------------------------------------------------------+


Bu kodla ne istiyorsunuz?

Ne ve orada size ne yardımcı olmadı?

 
RichLux :

if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrBlue );
}
    if (SiparişSat< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrRed );
}

ama ihtiyacın var

if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage, slBuy ,tpBuy, NULL ,MagicNumber, 0 , clrBlue );
}
    if (SiparişSat< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage, slSell , tpSell , NULL ,MagicNumber, 0 , clrRed );
}

Her kene açılır (

double tp,sl,OrderBuy= 0 ,OrderSell= 0 ;
double slSell,slBuy,tpSell,tpBuy;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {

   for ( int i= 0 ; i< OrdersTotal (); i++)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
         if ( OrderSymbol ()== _Symbol && OrderMagicNumber ()==MagicNumber)
           {
             if ( OrderType ()== OP_BUY ){}
             if ( OrderType ()== OP_SELL ){}
           }
     }
   double rsi= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 0 );
   double rsi1= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 1 );
//+------------------------------------------------------------------+

   double StopLossLevel;
   double TakeProfitLevel;
   if (StopLoss> 0 ) StopLossLevel= Bid -StopLoss* Point ; else StopLossLevel= 0.0 ;
   if (TakeProfit> 0 ) TakeProfitLevel= Ask +TakeProfit* Point ; else TakeProfitLevel= 0.0 ;

   tpBuy= NormalizeDouble ( Ask +TakeProfit* _Point , _Digits );
   slBuy= NormalizeDouble ( Bid -StopLoss* _Point , _Digits );

   tpSell= NormalizeDouble ( Bid -TakeProfit* _Point , _Digits );
   slSell= NormalizeDouble ( Ask +StopLoss* _Point , _Digits );
///---
   if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
     {
      tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,slBuy,tpBuy, NULL ,MagicNumber, 0 , clrBlue );      
     }      
   if (OrderSell< 1 && rsi<Urov_30 && rsi1>Urov_30)
     {
      tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,slSell,tpSell, NULL ,MagicNumber, 0 , clrRed );      
     }
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin :

Bu kodla ne istiyorsunuz?

Ne ve orada size ne yardımcı olmadı?

Kodun nesi var?

Her tikte açılmaması gereklidir.

 
Ibragim Dzhanaev :
Kodun nesi var?

Evet, hepsi yanlış

Sonuç olarak hiçbir şey yapmıyorsa ve geri dönmüyorsa, konum arama döngüsüne ne gerek var?

Neden birden az sıfır değerine sahip değişkenleri kontrol ediyorsunuz ve her onayda açılmamasını bekliyorsunuz?

Evet ve dürüst olmak gerekirse bir sürü saçmalık ...

 

Ben de aynı sorunu yaşıyorum, test cihazında her tikte açılıyor, ancak olmaması gerekiyor

Çalışmak için minimum sipariş sayısına bir koltuk değneği koydum, ama bu bir yama, başka bir şey değil

 
trader781 :

Ben de aynı sorunu yaşıyorum, test cihazında her tikte açılıyor, ancak olmaması gerekiyor

Çalışmak için minimum sipariş sayısına bir koltuk değneği koydum, ama bu bir yama, başka bir şey değil

Açık pozisyonların sayısını doğru bir şekilde sayarsanız, koltuk değneğine gerek yoktur.
 
Artyom Trishkin :

Evet, hepsi yanlış

Sonuç olarak hiçbir şey yapmıyorsa ve geri dönmüyorsa, konum arama döngüsüne ne gerek var?

Neden birden az sıfır değerine sahip değişkenleri kontrol ediyorsunuz ve her onayda açılmamasını bekliyorsunuz?

Evet ve dürüst olmak gerekirse bir sürü saçmalık ...

Gerektiği gibi gönderin.

Bilseydim, yapardım.

 
Artyom Trishkin :
Açık pozisyonların sayısını doğru bir şekilde sayarsanız, koltuk değneğine gerek yoktur.

Bunlar kesinlikle sınırlandırılmamalıdır.

kısa durumda


void OnTick()

  { 

 

 

 

if( OrdersTotal ()== 0 ) //+-------------если количество ордеров равно 0
       {
         if (( MathAbs (ma2-ma4)> 100 * _Point )
            && ( MathAbs ( Bid -ma3)> 100 * Point ())
            && (ma31>ma32>ma33)) //+-----покупка по 6+50
           {
            ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 50 , 0 , 0 , "" ,Magic, 0 , clrAzure ); //+------отправка 1 ордера
           }
         if (( Bid + 1000 * Point )>ma3 && ( Bid >ma1) && ( Bid >ma2)) //+-------------условие продажи
           {
            ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 50 , 0 , 0 , "" ,Magic, 0 , clrAzure ); //+-----отправка 1 ордера
           }
         if (ticket== 0 )
           {
             return ;
           }
        }

       //+---------------------------------------------------------если уже есть

        
         if (FindLastOType()== OP_BUY )
           {
             if ( Ask <=FindLastOrderOpenPrice()-Step* Point ()) //+------------если ордер в минус
              {
               ticket= OrderSend ( Symbol (), OP_BUY ,(FindLastLot()*Martin), Ask , 50 , 0 , 0 , "" ,Magic, 0 , clrAzure );
              }
             else
             if ( Ask >=FindLastOrderOpenPrice()+Step* Point ()) //+------------если ордер в плюс
              {
               ticket= OrderSend ( Symbol (), OP_BUY ,(FindLastLot()*Martin), Ask , 50 , 0 , 0 , "" ,Magic, 0 , clrAzure );
              }
           }

         if (FindLastOType()== OP_SELL )
           {

             if ( Bid >=FindLastOrderOpenPrice()+Step* Point ()) //+------------если ордер в минус
              {
               ticket= OrderSend ( Symbol (), OP_SELL ,(FindLastLot()*Martin), Bid , 50 , 0 , 0 , "" ,Magic, 0 , clrLightGray );
              }
             else
             if ( Bid <=FindLastOrderOpenPrice()-Step* Point ()) //+------------если ордер в плюс
              {
               ticket= OrderSend ( Symbol (), OP_SELL ,(FindLastLot()*Martin), Bid , 50 , 0 , 0 , "" ,Magic, 0 , clrLightGray );
              }
          
        
     }
   Trailingall();
  }
Açılış adımını göz ardı etmemem gerekiyor ve 200 beş haneli veya üç maliyeti var.
 

Bunu yaptım, şimdi her tıklamada açılmıyor, ancak giriş sinyallerini atlıyor...

double tp,sl,OrderBuy= 0 ,OrderSell= 0 ;
double slSell,slBuy,tpSell,tpBuy,TotalBiu,TotalSell;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {

   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) //Цикл по всем ордерам
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==MagicNumber) //Выбрали ордер
        {
         if ( OrderType ()== OP_BUY )
           {
            TotalBiu++;                       //Кол. покупок
           }
         if ( OrderType ()== OP_SELL )
           {
            TotalSell++;                     //Кол. продаж
           }
        }
     }
   double rsi= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 0 );
   double rsi1= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 1 );
//+------------------------------------------------------------------+

   double StopLossLevel;
   double TakeProfitLevel;
   if (StopLoss> 0 ) StopLossLevel= Bid -StopLoss* Point ; else StopLossLevel= 0.0 ;
   if (TakeProfit> 0 ) TakeProfitLevel= Ask +TakeProfit* Point ; else TakeProfitLevel= 0.0 ;

   tpBuy= NormalizeDouble ( Ask +TakeProfit* _Point , _Digits );
   slBuy= NormalizeDouble ( Bid -StopLoss* _Point , _Digits );

   tpSell= NormalizeDouble ( Bid -TakeProfit* _Point , _Digits );
   slSell= NormalizeDouble ( Ask +StopLoss* _Point , _Digits );
///---
if (TotalBiu== 0 )
   if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
     {
      tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,slBuy,tpBuy, NULL ,MagicNumber, 0 , clrBlue );      
     }
       if (TotalSell== 0 )    
   if (OrderSell< 1 && rsi<Urov_30 && rsi1>Urov_30)
     {
      tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,slSell,tpSell, NULL ,MagicNumber, 0 , clrRed );      
     }
  }
//+------------------------------------------------------------------+