[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 116

 
테스트 중 로그에도 다음과 같이 표시됩니다. 2012.05.11 20:03:29 2012.01.09 01:02 Fenicks v01 EURUSD,M1: OrderModify error 1

이 오류를 제거하는 방법은 무엇입니까?

다음은 EA 코드 자체입니다.

 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 :
테스트 중 로그에도 다음과 같이 표시됩니다. 2012.05.11 20:03:29 2012.01.09 01:02 Fenicks v01 EURUSD,M1: OrderModify error 1
이 오류를 제거하는 방법은 무엇입니까?

주문 매개변수가 변경되지 않은 경우 OrderModify 함수를 호출 하지 마십시오.
 
sergeev :

주문 매개변수가 변경되지 않은 경우 OrderModify 함수를 호출하지 마십시오.
이 오류를 방지하려면 Expert Advisor에서 어떤 코드를 작성해야 합니까?
 
alex12 :
이 오류를 방지하려면 Expert Advisor에서 어떤 코드를 작성해야 합니까?

옳은
 
이 스레드의 115페이지 끝부분에서 제가 질문한 설정이 무엇을 의미하는지 이미 말씀해 주시겠습니까?
 
alex12 :
설정이 무엇을 의미하는지 알려주실 수 있습니까?

글쎄, 주어진 문자열

 if (olbuy< 1 && olbuy< 1 )

아마 좋지 않을 것입니다)

 
그들이 의미하는 바는 - 제발 말해 주세요.

그래서 몇 줄의 설정 코드를 알아냈습니다.

설정 코드에 이해할 수 없는 줄이 있습니다.

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

글쎄, 주어진 문자열

아마 좋지 않을 것입니다)

예, 예, 그리고 나는 그것을 알아 차렸습니다 - 일종의 넌센스)
 

때로는 사용자 지정 지표에서 다른 사용자 지정 지표를 호출하고 싶을 때가 있습니다. - 작동하지 않습니다((

그것을 우회하는 방법? 두 번째 지표를 함수로 더 잘 변환할 수 있습니까? 다른 방법은?

 
jelizavettka :

때로는 사용자 지정 지표에서 다른 사용자 지정 지표를 호출하고 싶을 때가 있습니다. - 작동하지 않습니다((

그것을 우회하는 방법? 두 번째 지표를 함수로 더 잘 변환할 수 있습니까? 다른 방법은?


iCustom() 이 호출되지 않습니까?