Automated Trading Championship 2007: 전문가 고문의 일반적인 실수 - 페이지 6

 
오류 메시지 " OrderModify 오류 1"은 잘못된 프로그래밍으로 인한 변경되지 않은 매개변수로 OrderModify를 호출하는 것을 의미합니다.

OrderModify를 호출하기 전에 새 데이터로 업데이트를 정확히 호출하는지 아니면 기존 값을 설정하려고 하는지 확인하십시오.
 
Expert Advisor의 확인이 완료되었습니다. 전문가 테스트 보고서:
----------------------
2007.09.08 17:47 로딩중
EURUSD:60의 마지그
17:38:34 2007.01.04 00:01 stormer_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:02talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:03talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:04 stormer_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:04 stormer_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:06talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:06talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:06talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:06talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:06talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:06talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:07talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:07talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:07talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:07talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:07talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:07talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:07talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:07talker_2 EURUSD,H4: OrderModify 오류 1
17:38:34 2007.01.04 00:08talker_2 EURUSD,H4: OrderModify 오류 1
0분 49초
오류: 20


----------------------

Expert Advisor의 코드를 수정하고 프로필 페이지에 새 버전을 업로드하십시오.

로봇에 대한 무언가가 미쳤습니다. 분명히 많은 참가자가 있는 것 같습니다 :-) 그는 이미 전문가를 혼동하기 시작했습니다. 내 전문가 고문은 의견에스토커_2를 쓰지 않고 시간별 차트에서 작동합니다. 그리고 OrderModify 명령은 그것을 사용하지 않습니다.
 
Renat :
오류 메시지 "OrderModify 오류 1"은 잘못된 프로그래밍으로 인한 변경되지 않은 매개변수로 OrderModify를 호출하는 것을 의미합니다.

OrderModify를 호출하기 전에 새 데이터로 업데이트를 정확히 호출하는지 아니면 기존 값을 설정하려고 하는지 확인하십시오.

아마도 당신은 디자인을 의미합니까?

if ( RefreshRates() == true )

{

....

OrderModify(티켓,...

}

내 흔적에

각 순서를 변경한 후 루프에 Resresh()가 있습니다.

35p 이익에 도달하면 손익분기점으로 철수

외부 변수, 가장 작은 값

FirstTralStopSell = 35;

50p에 도달하면 후속 트레일

130 오류가 어떻게 발생하는지 잘 모르겠습니다. 테스트에 그런 오류가 없습니다.

OrderModify 명령을 실행한 후 테스트 시스템은 가격이 50p 이상으로 반환될 시간이 있는 방식으로 재견적 을 에뮬레이트할 수 있습니다.

그러나 그런 상황을 피하는 방법은 무엇입니까?

게다가 내 LOGS는 테스트 시스템이 제공하는 로그에 들어가지 않습니다!?

만약 (오류 != 0 )
{
if ( 에코오류 == 1 )
Print("오류("+err+") Open="+OrderOpenPrice()+" "+OrderStopLoss()+" 수정 SL: "+(Ask+Point*FirstTralStopSell)+" TP "+(0)+" "+ 메시지 오류(오류));
}

 void TralYZ ( int lLockTralSell , int lLockTralBuy )
{
   int err ;
   int cnt = OrdersTotal () ;
   int LocalDinamicTrallSELL ;
   int LocalDinamicTrallBUY ;
   int FirstTralStopSell ;
   int FirstTralStopBuy ;
   LocalDinamicTrallSELL = oDinamicTrallSELL ; // значения по умолчанию 
   LocalDinamicTrallBUY =  oDinamicTrallBUY  ;
   FirstTralStopSell = oFirstTralStopSell ;             // первый безуюыток 
   FirstTralStopBuy = oFirstTralStopBuy ;
 
 
   while ( cnt >= 0 )
   {
      RefreshRates () ;
      
      OrderSelect ( cnt , SELECT_BY_POS , MODE_TRADES ) ;
      Sleep ( 10000 ) ;
      int Ticket = OrderTicket () ;
      int IDorder ;
      IDorder = FindID ( Ticket ) ;
      if ( OrderSymbol () == Symbol () )
      {
         if ( OrderType () == OP_SELL && lLockTralSell == 0 ) 
         {         
            if ( OrderMagicNumber () == MAGIC3 )
               FirstTralStopSell = d3FirstTralStopBuy ;
            if ( OrderMagicNumber () == MAGIC2 )
               FirstTralStopSell = d2FirstTralStopBuy ;
            if ( OrderMagicNumber () == MAGIC1 )
               FirstTralStopSell = d1FirstTralStopBuy ;
            if ( OrderMagicNumber () == cMAGIC3 )
               FirstTralStopSell = c3FirstTralStopSell ;
            if ( OrderMagicNumber () == cMAGIC2 )
               FirstTralStopSell = c2FirstTralStopSell ;
            if ( OrderMagicNumber () == cMAGIC1 )
               FirstTralStopSell = c1FirstTralStopSell ;
            if ( 
               ( OrderStopLoss () == 0  && ( OrderOpenPrice () - Ask ) >= ( FirstTralStopSell * Point ) + Ask - Bid ) ||
               ( OrderStopLoss () > OrderOpenPrice ()  && ( OrderOpenPrice () - Ask ) >= ( FirstTralStopSell * Point ) + Ask - Bid ) 
               )
            {                  
               if ( DEBUG == 1 )
                  Print ( " 1 SL= " + OrderStopLoss () + " > OP= " + OrderOpenPrice () + " && ( OP " + OrderOpenPrice () + " - Ask " + Ask + " ) " + ( OrderOpenPrice () - Ask ) + " >= ( " + FirstTralStopSell + " *  " + Point + " )  " + Ask + " - " + Bid + " = " + ( Ask - Bid )) ;
               lotlib_PrevLots = OrderLots () ;  
               lotlib_PrevProfit = OrderProfit () ;
               OrderModify ( Ticket , OrderOpenPrice () , Ask + ( Point * FirstTralStopSell ) , 0 , 0 , Purple ) ;
               Sleep ( 10000 ) ;
               err = GetLastError () ;
               if ( err != 0 )
               {
                  if ( ECHOerror == 1 )
                     Print ( " Error( " + err + " ) Open= " + OrderOpenPrice () + " " + OrderStopLoss () + " modifying SL: " + ( Ask + Point * FirstTralStopSell ) + " TP " + ( 0 ) + " " + msgErrors ( err )) ;
               }
            }
 
같은 EA코드를 3번이나 확인했는데.. 처음 2번은 에러가 안나고 3번은 갑자기 에러가 나서 지금은 EA코드를 바꿔야 합니다. 동일한 전문가 코드를 여러 번 확인해야 하는 이유가 명확하지 않습니까?
 
Renat :
오류 메시지 " OrderModify 오류 1"은 잘못된 프로그래밍으로 인한 변경되지 않은 매개변수로 OrderModify를 호출하는 것을 의미합니다.

OrderModify를 호출하기 전에 새 데이터로 업데이트를 정확히 호출하는지 아니면 기존 값을 설정하려고 하는지 확인하십시오.


디자인 후

                     if ( RefreshRates () == true )
                        OrderModify ( Ticket , OrderOpenPrice () , Bid - Point * LocalDinamicTrallBUY , 0 , 0 , Purple ) ;

테스트에서 트롤은 터미널 버전 208에서 전혀 작동하지 않습니다.

작동하지 않습니다 RefreshRates() == true ?

LocalDinamicTrallBUY = 50;

트롤 입구

              if ( OrderStopLoss () > OrderOpenPrice () && ( Bid - OrderStopLoss () )  >= ( LocalDinamicTrallBUY * Point ) + Ask - Bid )
                  {
                     lotlib_PrevLots = OrderLots () ;  
                     lotlib_PrevProfit = OrderProfit () ;
                     if ( RefreshRates () == true )
                        OrderModify ( Ticket , OrderOpenPrice () , Bid - Point * LocalDinamicTrallBUY , 0 , 0 , Purple ) ;

내가 모르는 미묘함이 분명히 있습니다 ...

 
YuraZ :
레나트 :
오류 메시지 "OrderModify 오류 1"은 잘못된 프로그래밍으로 인한 변경되지 않은 매개변수로 OrderModify를 호출하는 것을 의미합니다.

OrderModify를 호출하기 전에 새 데이터로 업데이트를 정확히 호출하는지 아니면 기존 값을 설정하려고 하는지 확인하십시오.

아마도 당신은 디자인을 의미합니까?


이미 있는 OrderModify에서 동일한 StopLoss 값을 설정하려고 한다는 의미입니다. 예를 들어 StopLoss가 1.3020이고 1.3020에서 다시 중지하려고 하면 OrderModify는 코드 1을 반환합니다. 이것은 OrderModify 문서 에 명시적으로 작성되어 있습니다.

bool 주문 수정( int 티켓, 이중 가격, 이중 손절매, 이중 이익 실현, 날짜/시간 만료, color arrow_color=CLR_NONE)
이전에 열린 위치 또는 보류 중인 주문의 매개변수를 변경합니다. 함수가 성공적으로 완료되면 TRUE를 반환합니다. 함수 실패 시 FALSE를 반환합니다. 오류에 대한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다.

참고: 시작 가격 및 만료 시간은 보류 중인 주문에 대해서만 변경할 수 있습니다.
변경되지 않은 값이 함수 매개변수로 전달되면 이 경우 오류 1(ERR_NO_RESULT)이 생성됩니다.
일부 거래 서버는 보류 중인 주문 만료 날짜의 사용을 금지할 수 있습니다. 이 경우 만료 매개변수에 0이 아닌 값을 설정하려고 하면 오류 147(ERR_TRADE_EXPIRATION_DENIED)이 생성됩니다.
 
Renat :
유라즈 :
레나트 :
오류 메시지 "OrderModify 오류 1"은 잘못된 프로그래밍으로 인한 변경되지 않은 매개변수로 OrderModify를 호출하는 것을 의미합니다.

OrderModify를 호출하기 전에 새 데이터로 업데이트를 정확히 호출하는지 아니면 기존 값을 설정하려고 하는지 확인하십시오.

아마도 당신은 디자인을 의미합니까?


이미 있는 OrderModify에서 동일한 StopLoss 값을 설정하려고 한다는 의미입니다. 예를 들어 StopLoss가 1.3020이고 1.3020에서 다시 중지하려고 하면 OrderModify는 코드 1을 반환합니다. 이것은 OrderModify 문서 에 명시적으로 작성되어 있습니다.

bool 주문수정( int 티켓, 이중 가격, 이중 손절매, 이중 이익 실현, 날짜/시간 만료, color arrow_color=CLR_NONE)
이전에 열린 위치 또는 보류 중인 주문의 매개변수를 변경합니다. 함수가 성공적으로 완료되면 TRUE를 반환합니다. 함수 실패 시 FALSE를 반환합니다. 오류에 대한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다.

참고: 시작 가격 및 만료 시간은 보류 중인 주문에 대해서만 변경할 수 있습니다.
변경되지 않은 값이 함수 매개변수로 전달되면 이 경우 오류 1(ERR_NO_RESULT)이 생성됩니다.
일부 거래 서버는 보류 중인 주문 만료 날짜의 사용을 금지할 수 있습니다. 이 경우 만료 매개변수에 0이 아닌 값을 설정하려고 하면 오류 147(ERR_TRADE_EXPIRATION_DENIED)이 생성됩니다.


와!!! 확실히!!! 고마워요 레나트!

추가된 트레일 진입 조건

&& OrderStopLoss() != Ask+Point*LocalDinamicTallSELL

 if ( 
                         OrderStopLoss ()  < OrderOpenPrice ()
                      && ( OrderStopLoss () - Ask ) >= ( LocalDinamicTrallSELL * Point ) + Ask - Bid   
                      && OrderStopLoss () !=  Ask + Point * LocalDinamicTrallSELL    
                       ) 
                  {                     
                     if ( DEBUG == 1 )
                        Print ( " 2 SL= " + OrderStopLoss () + " < OP= " + OrderOpenPrice () + " && ( OP " + OrderOpenPrice () + " - Ask " + Ask + " ) " + ( OrderOpenPrice () - Ask ) + " >= ( " + LocalDinamicTrallSELL + " *  " + Point + " )  " + Ask + " - " + Bid + " = " + ( Ask - Bid )) ;
                     lotlib_PrevLots = OrderLots () ;  
                     lotlib_PrevProfit = OrderProfit () ;
                     if ( RefreshRates () == true )
                        OrderModify ( Ticket , OrderOpenPrice () , Ask + Point * LocalDinamicTrallSELL , 0 , 0 , Purple ) ;
                     err = GetLastError () ;
                     if ( err != 0 )
                     {   
                        if ( ECHOerror == 1 )
                           Print ( " Error( " + err + " ) Open= " + OrderOpenPrice () + " " + OrderStopLoss () + " modifying SL: " + ( Ask + Point * LocalDinamicTrallSELL ) + " TP " + ( 0 ) + " " + msgErrors ( err )) ;
                     }
                  }

그러나 테스트하는 동안 로그에는 오류가 없었습니다! - 좀 이상하다

 
pilgrim :

로봇에 대한 무언가가 미쳤습니다. 분명히 많은 참가자가 있는 것 같습니다 :-) 그는 이미 전문가를 혼동하기 시작했습니다. 내 전문가 고문은 의견에스토커_2를 쓰지 않고 시간별 차트에서 작동합니다. 그리고 OrderModify 명령은 그것을 사용하지 않습니다.
자동 테스터의 스크립트가 다른 사람의 로그를 캡처했습니다. 이미 수정되었습니다.
 
저것들. 두 번 그들은 전문가가 테스트를 성공적으로 통과했고 등록되었다는 이메일을 저에게 보냈습니다. 그리고 세 번째 에는 코드 에 오류가 있다고 말합니다. ..전문가의 코드를 왜 변경해야 합니까, 한 번 내 프로필에 업로드 했습니까?
 
folver :
저것들. 두 번 그들은 전문가가 테스트를 성공적으로 통과했고 나는 등록되었다는 이메일을 저에게 보냈고 ... 세 번째에는 코드에 오류가 있다고 말했습니다. ..전문가의 코드를 왜 변경해야 합니까, 한 번 내 프로필에 업로드 했습니까?
결과로 판단하면 EA는 마진 콜을 받았습니다. 나는 아무 말도 할 수 없습니다. 내일 아침에 다음 점검이 완료되어 결과를 확인하겠습니다.