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

 

모든 것이 정상적으로 선택되었지만 오류가 어쩐지 이상해서 테스터로 알아낼 수 없습니다.

0.3 로트가 동시에 마감되고 0.7 로트가 판매된다고 합니다. 테스터가 거래의 일부 종료를 표시하는 방법입니까? 그리고 거래의 일부가 닫힌 후 0.16, 0.24, 0.12 랏이 닫히고 열렸습니다. 그런 볼륨이 어디에서 왔는지 이해하지 못하며, 그러한 볼륨의 조언자 어디에서도 이해할 수 없습니다.

   for (Counter1= 0 ;Counter1< OrdersTotal ();Counter1++)
     {
     if ( OrderSelect (Counter1,SELECT_BY_POS,MODE_TRADES) == false) break ;
     if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
       {
       if ( OrderType () == OP_BUY)
         {
         
         BuyOpened = 1 ;
         if ((Bid - OrderOpenPrice ()) / Point >= TrailingLevel1 && (Bid - OrderOpenPrice ()) / Point < TrailingLevel2)
           {
           // Перенести в безубыток
           }
         }
       if ( OrderType () == OP_SELL)
         {
         TrailingPrice1 = OrderOpenPrice () - TrailingLevel1* Point ;
         MyOrderStopLoss1 = NormalizeDouble ( OrderStopLoss (), 4 );
         MyOrderStopLoss1 = OrderOpenPrice () - BreakEven* Point ;
         SellOpened = 1 ;
         if (( OrderOpenPrice () - Ask) / Point >= TrailingLevel1 && ( OrderOpenPrice () - Ask) / Point < TrailingLevel2 && OrderStopLoss () != MyOrderStopLoss1)
           {
           ClosingLot = OrderLots () / 100 * ClosingPercent;
           ClosingLot = NormalizeDouble (ClosingLot, 3 );
           OrderClose ( OrderTicket (),ClosingLot,Ask,Slippage, Yellow );
           OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - BreakEven* Point , OrderTakeProfit (), OrderExpiration (), Black );
           }
         }
       }
     }
 
sss2019 :

모든 것이 정상적으로 선택되었지만 오류가 어쩐지 이상해서 테스터로 알아낼 수 없습니다.

0.3 로트가 동시에 마감되고 0.7 로트가 판매된다고 합니다. 테스터가 거래의 일부 종료를 표시하는 방법입니까? 그리고 거래의 일부가 닫힌 후 0.16, 0.24, 0.12 랏이 닫히고 열렸습니다. 그런 볼륨이 어디에서 왔는지 이해하지 못하며, 그러한 볼륨의 조언자 어디에서도 이해할 수 없습니다.

예, 이것이 부품의 닫힘이 표시되는 방식입니다. 먼저 모든 것이 닫힌 다음 부품이 열립니다.


즉시 2개의 질문:

1) 더 이상 닫지 말아야 할 것을 어떻게 알 수 있습니까?

다음 틱의 조건은 이 기능에 대해 다시 충족됩니다.

2) 내가 틀리지 않은 경우 부분 마감 후 주문 티켓이 변경됩니다. 즉,

 OrderClose ( OrderTicket (),ClosingLot,Ask,Slippage, Yellow );
           OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - BreakEven* Point , OrderTakeProfit (), OrderExpiration (), Black );
           

두 번째 줄에는 변경 사항이 없습니다.


3) 정규화를 잊지 마십시오 ...

 
ilunga :

예, 이것이 부품의 닫힘이 표시되는 방식입니다. 먼저 모든 것이 닫힌 다음 부품이 열립니다.


즉시 2개의 질문:

1) 더 이상 닫지 말아야 할 것을 어떻게 알 수 있습니까?

다음 틱의 조건은 이 기능에 대해 다시 충족됩니다.

2) 내가 틀리지 않은 경우 부분 마감 후 주문 티켓이 변경됩니다. 즉,

두 번째 줄에는 변경 사항이 없습니다.


3) 정규화를 잊지 마십시오 ...


티켓이 정말 바뀌나요? 아마 그것에 관한 모든 오류. 그렇다면 수동으로 주문을 변경할 때 티켓이 변경되지 않는 이유는 무엇입니까? 티켓이 변경될 때 변경되는지 여부를 정확히 알아야 합니다.
 


정말 변하고 있어요 정말 감사합니다
 
통화 쌍에서 가격을 받으면 추가 작업을 위해 정상화해야 한다고 들었습니다. 예를 들어 가격이 일종의 낮은 가격에서 수신되고 이를 손절매 값으로 대체하려면 다음이 필요합니다. 정상화하려면 정말 그런가요?
 
sss2019 :
통화 쌍에서 가격을 받으면 추가 작업을 위해 정상화해야 한다고 들었습니다. 예를 들어 가격이 일종의 낮은 가격에서 수신되고 이를 손절매 값으로 대체하려면 다음이 필요합니다. 정상화하려면 정말 그런가요?

네. 하지만 정규화는 Ordersend/OrderModify/ ...에서 대체 시점에 있다는 것을 의미합니다. 이러한 기능 전에 작업을 수행하고 작업을 수행할 수 있습니다.
 
sergeev :

네. 하지만 정규화는 Ordersend / OrderModify / ...에서 대체 시점에 있다는 것을 의미합니다. 이러한 기능 전에 작업을 수행하고 작업을 수행할 수 있습니다.

그리고 몇 자릿수로 정규화해야 합니까? 기본적으로 가격이 소수점 이하 4자리인 것 같은데, 5자리 DC라도 최소한 Low[0], High[0] 값은 항상 소수점 이하 4자리만 있는 것 같은데, Alert 또는 Print 를 통해 출력하려면 ,
 
sss2019 :

그리고 몇 자릿수로 정규화해야 합니까? 기본적으로 가격이 소수점 이하 4자리인 것 같은데, 5자리 DC라도 최소한 Low[0], High[0] 값은 항상 소수점 이하 4자리만 있는 것 같은데, Alert 또는 Print를 통해 출력하려면,

기본적으로 Digits 가격에는 소수점 이하 자릿수가 있습니다.

기본적으로 경고 및 인쇄 출력은 4입니다. 더 많은 경우 문자열 DoubleToStr (이중 값, 정수 숫자)을 사용하십시오.

 

다음과 같이 후행 중지를 구현하는 데 도움이 됩니다. 매도 주문

         if (( OrderOpenPrice () - Ask) / Point > Trailing) //Если прибыль в пунктах больше чем уровень трейлинг стопа
           {
           NewStopLoss = Ask + TrailingLevel2* Point ;
           double NewStopLoss2 = 9999 ;
           if (NewStopLoss2 > NewStopLoss)
             {
             NewStopLoss2 = NewStopLoss;
             }
           OrderModify ( OrderTicket (), OrderOpenPrice (),NewStopLoss2, OrderTakeProfit (), OrderExpiration (), Black );
           }

문제는 손절매가 앞으로만 움직여야 하지만 나에게는 뒤로도 움직인다는 것입니다.

________________________________

질문이 사라졌습니다. 죄송합니다.

 
sss2019 :

다음과 같이 후행 중지를 구현하는 데 도움이 됩니다. 매도 주문

문제는 손절매가 앞으로만 움직여야 하지만 나에게는 뒤로도 움직인다는 것입니다.

 double NewStopLoss2 = 9999 ;
           if (NewStopLoss2 > NewStopLoss)
             {
             NewStopLoss2 = NewStopLoss;
             }

그것은 동등하다

NewStopLoss2 = NewStopLoss;
사유: