그리고 이것으로 "만화"를 만들자 (다중 통화) - 페이지 5

 

일찍 기뻐했다. 오류 없이 컴파일되지만 테스터에서는 주문이 열렸을 때 이 기능을 통해 가격이 인디케이터로 전송되지 않습니다. 다음과 같이 호출합니다. OP=PriceOpenLastPos(); 그러나 주석에서 OR은 0으로 유지됩니다.

이것이 테스터의 문제입니까, 시각화 모드에서 창에 매달린 표시기에 값을 전달하지 않습니까?

 
Angela писал(а) >>

일찍 기뻐했다. 오류 없이 컴파일되지만 테스터에서는 주문이 열렸을 때 이 기능을 통해 가격이 인디케이터로 전송되지 않습니다. 다음과 같이 호출합니다. OP=PriceOpenLastPos(); 그러나 주석에서 OR은 0으로 유지됩니다.

이것이 테스터의 문제입니까, 시각화 모드에서 창에 매달린 표시기에 값을 전달하지 않습니까?

표시기는 테스터에서 일어나는 일을 볼 수 없습니다. 이제 실제 주문이 열리면 보여줍니다.

 
ALex2008 писал(а) >>

답변 부탁드립니다)

 //-------Поиск ордеров
bool WorkOrders ( ) {
       for ( int i = OrdersTotal ( ) - 1 ; i > = 0 ; i - - ) {
       if ( ! OrderSelect ( i , SELECT_BY_POS ) )    continue ;
       if ( OrderSymbol ( ) ! = Symbol ( ) )          continue ;
      Type = OrderType ( ) ;
      Ticket = OrderTicket ( ) ;
       return ( true ) ;
   }
   return ( false ) ;   
}
 
Vinin >> :

수정 ... 그러나 문제는 남아 있습니다 (

DellAllOrders() 주문 삭제 기능이 작동하지 않습니다..

 //-------Удаление всех ордеров
void DellAllOrders ( ) {
      if ( WorkOrders ( ) ) OrderClose ( Ticket , OrderLots ( ) , OrderClosePrice ( ) , 10 ) ;
  }
  
//-------Поиск ордеров
bool WorkOrders ( ) {
      for ( int i = OrdersTotal ( ) - 1 ; i > = 0 ; i - - ) {
      if ( ! OrderSelect ( i , SELECT_BY_POS ) )  continue ;
      if ( OrderSymbol ( ) ! = Symbol ( ) )        continue ;
      Type = OrderType ( ) ;
      Ticket = OrderTicket ( ) ;
      return ( true ) ; }
  return ( false ) ;
  }

추가했어야 할듯





OrderDelete(Ticket);

그런대로....?

 //-------Удаление всех ордеров, открытых и отложенных
void DellAllOrders ( ) {
      if ( WorkOrders ( ) ) {
      OrderClose ( Ticket , OrderLots ( ) , OrderClosePrice ( ) , 10 ) ;
      OrderDelete ( Ticket ) ; }
  }
 
ALex2008 писал(а) >>

수정 ... 그러나 문제는 남아 있습니다 (

DellAllOrders() 주문 삭제 기능이 작동하지 않습니다..

 //-------Удаление всех ордеров
void DellAllOrders ( ) {
   for ( int i = OrdersTotal ( ) - 1 ; i > = 0 ; i - - ) {
       if ( ! OrderSelect ( i , SELECT_BY_POS ) )    continue ;
       if ( OrderSymbol ( ) ! = Symbol ( ) )          continue ;
       if ( OrderType ( ) < = OP_SELL ) OrderClose ( OrderTicket ( ) , OrderLots ( ) , OrderClosePrice ( ) , 10 ) ;
       else OrderDelete ( OrderTicket ( ) ) ;
   }
}
지연된 항목도 제거합니다.
 
Vinin >> :
지연된 항목도 제거합니다.

고맙습니다)

이제 작동해야 할 것 같습니다..

 //-------Удаление всех ордеров, открытых и отложенных
void DellAllOrders ( ) {
      if ( WorkOrders ( ) ) {
      if ( Type < =1 ) OrderClose ( Ticket , OrderLots ( ) , OrderClosePrice ( ) , 10 ) ;
      else OrderDelete ( Ticket ) ; }
  }
그리고 어드바이저를 다시 저장하면 2차 스톱로스 설정에 오류가 나는 것도 발견했습니다(단, 터미널을 다시 시작해도 마찬가지일 거라 생각합니다)...
stoploss를 설정하기 전에 추가 확인 ..-


if(WorkOrders())
      if ((Type<=1)&& (Stop==0))SetStop();



 //-------Поиск ордеров
bool WorkOrders ( ) {
      for ( int i = OrdersTotal ( ) - 1 ; i > = 0 ; i - - ) {
      if ( ! OrderSelect ( i , SELECT_BY_POS ) )  continue ;
      if ( OrderSymbol ( ) ! = Symbol ( ) )        continue ;
      Type  = OrderType ( ) ;
      Ticket = OrderTicket ( ) ;
      Stop  = OrderStopLoss ( ) ;
      return ( true ) ; }
  return ( false ) ;
  }
 
사람들) 봐 ... 아마도 다른 것이 잘못되었을 수 있습니다. 무엇을 수정해야합니까?
 
ALex2008 >> :
사람들) 봐 ... 아마도 다른 것이 잘못되었을 수 있습니다. 무엇을 수정해야합니까?
 OrderSend ( Symbol ( ) , OP_BUYSTOP , 0.1 , Enter , 0 , 0 , Ask + Profit , 0 , 0 , 0 , Green ) ;

그래서 의도? 또는 여전히

Enter + Profit
 
Swan >> :

그래서 의도? 또는 여전히

그리고 진실은 착오) 글쎄요, 이건 연기임에 틀림없습니다!! ... 감사합니다. 리메이크.

 
ALex2008 >> :

그리고 진실은 오류) 진실은 비판적이지 않습니다... 감사합니다.

항상 오류 130.

StopLoss 및 Enter에 대해 StopLevel을 확인해야 합니다.


그리고 이초

if(b0<b1) StopLoss=b1;
else StopLoss=b0;

가장 큰 것을 선택해야 합니까?