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

 
Test sırasında kayıtta bile şöyle yazıyor: 2012.05.11 20:03:29 2012.01.09 01:02 Fenicks v01 EURUSD,M1: OrderModify error 1

Bu hatadan nasıl kurtulur?

İşte EA kodunun kendisi:

 extern double Lot= 0.01 ;
int h= 15 ; //начало от цены
int g= 20 ; //тейкпрофит
int i= 0 ;
int k= 1 ;
int l= 1 ;
double TakeB= 0 ;
double TakeS= 0 ;
int olbuy= 0 ;
int olsell= 0 ;
int oldbuy= 0 ;
int oldsell= 0 ;
int otkbuy= 0 ;
int otlbuy= 0 ;
int otksell= 0 ;
int otlsell= 0 ;


int openbuy()   // Выставления отложенных ордеров на продажу
  {
   double PRICE=Ask- Point *h;
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 1 ,PRICE, 0 , 0 ,PRICE+ Point *g, "My order #" , 11 );
   PRICE=Ask- Point *(h+ 10 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 2 ,PRICE, 0 , 0 ,PRICE+ Point *g, "My order #" , 12 );
   PRICE=Ask- Point *(h+ 20 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 4 ,PRICE, 0 , 0 ,PRICE+ Point *g, "My order #" , 13 );
   PRICE=Ask- Point *(h+ 30 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 8 ,PRICE, 0 , 0 ,PRICE+ Point *g, "My order #" , 14 );
   PRICE=Ask- Point *(h+ 40 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 16 ,PRICE, 0 , 0 ,PRICE+ Point *g, "My order #" , 15 );
   PRICE=Ask- Point *(h+ 50 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 32 ,PRICE, 0 , 0 ,PRICE+ Point *g, "My order #" , 16 );
   PRICE=Ask- Point *(h+ 60 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 64 ,PRICE, 0 , 0 ,PRICE+ Point *g, "My order #" , 17 );
   PRICE=Ask- Point *(h+ 70 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 128 ,PRICE, 0 , 0 ,PRICE+ Point *g, "My order #" , 18 );
   PRICE=Ask- Point *(h+ 85 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 256 ,PRICE, 0 , 0 ,PRICE+ Point * 1.5 *g, "My order #" , 19 );
   PRICE=Ask- Point *(h+ 100 );
   OrderSend ( Symbol (),OP_BUYLIMIT,Lot* 512 ,PRICE, 0 , 0 ,PRICE+ Point * 1.5 *g, "My order #" , 20 );
   return ( 0 );
  }

int opensell()   // Выставления отложенных ордеров на продажу
  {
   double PRICE=Bid+ Point *h;
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 1 ,PRICE, 0 , 0 ,PRICE- Point *g, "My order #" , 21 );
   PRICE=Bid+ Point *(h+ 10 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 2 ,PRICE, 0 , 0 ,PRICE- Point *g, "My order #" , 22 );
   PRICE=Bid+ Point *(h+ 20 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 4 ,PRICE, 0 , 0 ,PRICE- Point *g, "My order #" , 23 );
   PRICE=Bid+ Point *(h+ 30 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 8 ,PRICE, 0 , 0 ,PRICE- Point *g, "My order #" , 24 );
   PRICE=Bid+ Point *(h+ 40 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 16 ,PRICE, 0 , 0 ,PRICE- Point *g, "My order #" , 25 );
   PRICE=Bid+ Point *(h+ 50 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 32 ,PRICE, 0 , 0 ,PRICE- Point *g, "My order #" , 26 );
   PRICE=Bid+ Point *(h+ 60 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 64 ,PRICE, 0 , 0 ,PRICE- Point *g, "My order #" , 27 );
   PRICE=Bid+ Point *(h+ 70 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 128 ,PRICE, 0 , 0 ,PRICE- Point *g, "My order #" , 28 );
   PRICE=Bid+ Point *(h+ 85 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 256 ,PRICE, 0 , 0 ,PRICE- Point * 1.5 *g, "My order #" , 29 );
   PRICE=Bid+ Point *(h+ 100 );
   OrderSend ( Symbol (),OP_SELLLIMIT,Lot* 512 ,PRICE, 0 , 0 ,PRICE- Point * 1.5 *g, "My order #" , 30 );
   return ( 0 );
  }

int closebuy()   // Закрывает отложенный ордера на покупку
{
   for (i= 1 ; i< OrdersTotal (); i++)
    {
       if (( OrderSelect (i- 1 ,SELECT_BY_POS)==true)
      && ( OrderType ()== 2 ))
      {
       OrderDelete ( OrderTicket ());
      }
    }
}

int closesell()   // Закрывает отложенный ордера на продажу
{
   for (i= 1 ; i< OrdersTotal (); i++)
    {
       if (( OrderSelect (i- 1 ,SELECT_BY_POS)==true)
      && ( OrderType ()== 3 ))
      {
       OrderDelete ( OrderTicket ());
      }
    }
}

int start()
  {
// начало открытия отложенных ордеров 
   if ( OrdersTotal ()== 0 )
     {
     openbuy();
     opensell();
     }
// Открывает на продажу если на покупку открыта ранее
   for (i= 0 ; i< OrdersTotal (); i++)
    {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 3 ))
      {
      olsell++;
      }
    } 
     for (i= 0 ; i< OrdersTotal (); i++)
    {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 1 ))
      {
      oldsell++;
      }
    }   
         if (olsell< 1 && oldsell< 1 )
          {
          opensell();
          } 
// Открывает на покупку если на прадажу уже открыта ранее
   for (i= 0 ; i< OrdersTotal (); i++)
    {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 2 ))
      {
      olbuy++;
      }
    }
   for (i= 0 ; i< OrdersTotal (); i++)
    {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 0 ))
      {
      oldbuy++;
      }
    }
         if (olbuy< 1 && olbuy< 1 )
          {
          openbuy();
          }
// конец открытия отложенных ордеров

// ---------- Начало модификаций отложенных ордеров --------------
// Модификация тейк профита для открытых ордеров на покупку

   for (i= 0 ; i< OrdersTotal (); i++)
     {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 0 ))
       {
       TakeB= OrderTakeProfit ();
       }
     }
   for (i= 0 ; i< OrdersTotal (); i++)
     {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 0 ))
       {
       OrderModify ( OrderTicket (), OrderOpenPrice (), 0 ,TakeB, 0 );
       }
      }
 // Модификация тейк профита для открытых ордеров на продажу
   for (i= 0 ; i< OrdersTotal (); i++)
     {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 1 ))
       {
       TakeS= OrderTakeProfit ();
       }
     }
   for (i= 0 ; i< OrdersTotal (); i++)
     {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 1 ))
       {
       OrderModify ( OrderTicket (), OrderOpenPrice (), 0 ,TakeS, 0 );
       }
      }
// Подсчет открытых и закрытых ордеров
   for (i= 0 ; i< OrdersTotal (); i++)
     {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 0 ))
       {
       otkbuy++;                               // Открытых покупок
       }
     }
   for (i= 0 ; i< OrdersTotal (); i++)
     {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 2 ))
       {
       otlbuy++;                               // Отложенных покупок
       }
     }
   for (i= 0 ; i< OrdersTotal (); i++)
     {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 1 ))
       {
       otksell++;                             // Открытых продаж
       }
     }
   for (i= 0 ; i< OrdersTotal (); i++)
     {
       if (( OrderSelect (i,SELECT_BY_POS)==true)
      && ( OrderType ()== 3 ))
       {
       otlsell++;                             // Отложенных продаж
       }
     }
// Очистка лишних ордеров на покупку
if ((otkbuy== 0 ) && (otlbuy<= 5 ))
   {
   closebuy();
   }
// Очистка лишних ордеров на продажи
if ((otksell== 0 ) && (otlsell<= 5 ))
   {
   closesell();
   }
// Модификация отложенных ордеров на покупку
   otkbuy= 0 ;
   otlbuy= 0 ;
   otksell= 0 ;
   otlsell= 0 ;
   olbuy= 0 ;
   olsell= 0 ;
   oldbuy= 0 ;
   oldsell= 0 ; 
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
alex12 :
Test sırasında kayıtta bile şöyle yazıyor: 2012.05.11 20:03:29 2012.01.09 01:02 Fenicks v01 EURUSD,M1: OrderModify error 1
Bu hatadan nasıl kurtulur?

hiçbir sipariş parametresi değiştirilmediyse OrderModify işlevini çağırmayın .
 
sergeev :

hiçbir sipariş parametresi değiştirilmediyse OrderModify işlevini çağırmayın.
Bu hatayı önlemek için Expert Advisor'da hangi kod yazılmalıdır?
 
alex12 :
Bu hatayı önlemek için Expert Advisor'da hangi kod yazılmalıdır?

doğru
 
115. sayfanın sonunda, bu başlıkta size sorduğum ayarların ne anlama geldiğini bana şimdiden söyleyebilir misiniz?
 
alex12 :
Lütfen bana ayarların ne anlama geldiğini söyler misiniz?

Eh, verilen dizeler gibi

 if (olbuy< 1 && olbuy< 1 )

büyük olasılıkla iyi bir şey yok)

 
Ne demek istiyorlar - söyle lütfen.

bu yüzden bazı ayar kodları satırları buldum.

Ayarlar kodunun anlaşılmaz satırları var:

 int i= 0 ;
int k= 1 ;
int l= 1 ;
 
alsu :

Eh, verilen dizeler gibi

büyük olasılıkla iyi bir şey yok)

evet, evet ve fark ettim - bir tür saçmalık)
 

Bazen gerçekten özel bir göstergeden başka bir özel göstergeyi çağırmak istersiniz. - çalışmıyor((

Nasıl atlanır? İkinci gösterge bir işleve daha iyi dönüştürülebilir mi? Başka nasıl?

 
jelizavettka :

Bazen gerçekten özel bir göstergeden başka bir özel göstergeyi çağırmak istersiniz. - çalışmıyor((

Nasıl atlanır? İkinci gösterge bir işleve daha iyi dönüştürülebilir mi? Başka nasıl?


iCustom() çağrılmıyor mu?
Neden: