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

 
Vovo4ka :

어째서인지 차익이 찍혀야 하는 것이 아니라..... 추첨이 끝나면 차익이 30pp가 되어야 하는 차익에 쓰는데 전혀 다른 .... 뭔 개쓰레기


무슨 말도 안되는 소리: "사실, 주문을 여는 것과 닫는 것의 차이를 계산하고 요약하세요??????" ...

그리고 어떤 볼륨에? 알 필요 없어? 아이템 가격이 달라집니다...

이익은 포지션 의 거래량에 따라 포인트가 아니라 통화로 계산됩니다.

 
Vovo4ka :

어째서인지 차익이 찍혀야 하는 것이 아니라..... 추첨이 끝나면 차익이 30pp가 되어야 하는 차익에 쓰는데 전혀 다른 .... 뭔 개쓰레기


주문의 이익은 포인트가 아니라 예금 통화 입니다.

 

맞습니다 - 여기에서 총 손실(손실)은 손실로 ROW에서 마감된 주문 내역에 따라 계산됩니다.

당신은 약간 다를 수 있지만 원칙은 동일합니다.

 //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  Iteration = 0 ; // зануляем инерации перед их учетом в цикле по истории
  Sum_Loss = 0 ;   // суммарный убыток по этим итерациям
   datetime 
  Time_at_History_Current = 0 ,
  Time_at_History_Previos = 0 ;      
   if ( OrdersHistoryTotal () != 0 )
   {
     for ( int counter = OrdersHistoryTotal ()- 1 ; counter >= 0 ; counter--)
      {
       OrderSelect (counter, SELECT_BY_POS, MODE_HISTORY);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
         {
           if ( OrderType () == OP_BUY || OrderType () == OP_SELL)
            {
             if ( OrderProfit () < 0 ) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера
                                   // для последующего его анализа при подсчете количества итераций
                {
                 double lastLoss = OrderProfit ();
                 Sum_Loss=Sum_Loss+lastLoss;   // считаем общий убыток по закрытым подряд убыточным ордерам
                 Time_at_History_Current = OrderCloseTime ();
                } 
             
             //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));
             //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
             
             if (Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
               {
                Time_at_History_Previos = Time_at_History_Current ;
                Iteration++;              
                 //Print("Iteration at History в условии сравнения  = ",  Iteration);
               }   
             else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
               {
                 if ( OrderProfit () >= 0 ) 
                   break ;
               }
            }
         }
      }
   }
 
PapaYozh :


주문의 이익은 포인트가 아니라 예금 통화입니다.


그래서 포인트로 필요해요 로트는 1로 고정 .... 근데 어째서인지 손익이 실제랑 안맞아서..... 그래서 손익분기점수를 더 계산하고싶어요 쉽게 요약하고 결과를 얻으십시오 =)
 
Roman. :

맞습니다 - 여기에서 총 손실(손실)은 손실로 ROW에서 마감된 주문 내역에 따라 계산됩니다.

당신은 약간 다를 수 있지만 원칙은 동일합니다.


감사합니다 바로 알아볼게요 =)
 
Vovo4ka :

그래서 포인트로 필요해요 로트는 1로 고정 .... 근데 어째서인지 손익이 실제랑 안맞아서..... 그래서 손익분기점수를 더 계산하고싶어요 쉽게 요약하고 결과를 얻으십시오 =)


다시:

주문의 이익은 포인트 가 아니라 예금 통화 입니다.

 
Vovo4ka :

그래서 포인트로 필요해요 로트는 1로 고정 .... 근데 어째서인지 손익이 실제랑 안맞아서..... 그래서 손익분기점수를 더 계산하고싶어요 쉽게 요약하고 결과를 얻으십시오 =)

로트가 일정하다면 테스터의 이익을 Point 로 나눕니다. 포인트 수익이 발생합니다.
 

마지막으로 게시된 Kim 함수 GetPotentialLossInCurrency (https://forum.mql4.com/en/11287/page107)는 미결 주문만 고려합니다.

 if ( OrderType ()==OP_BUY) {
                pl+=( OrderOpenPrice ()- OrderStopLoss ())/po* OrderLots ()*tv;
              }
if ( OrderType ()==OP_SELL) {
                pl+=( OrderStopLoss ()- OrderOpenPrice ())/po* OrderLots ()*tv;
              }
보류 중인 주문 의 회계를 포함하여 조금 확장하려고 했습니다(단순히 다른 유형 추가).
 if ( OrderType ()==OP_BUY || OrderType ()==OP_BUYLIMIT || OrderType ()==OP_BUYSTOP) {
                     pl+=( OrderOpenPrice ()- OrderStopLoss ())/po* OrderLots ()*tv;
                     }
if ( OrderType ()==OP_SELL || OrderType ()==OP_SELLLIMIT || OrderType ()==OP_SELLSTOP) {
                     pl+=( OrderStopLoss ()- OrderOpenPrice ())/po* OrderLots ()*tv;
                  }
그러나 보류 중인 주문은 고려되지 않습니다. 그들은 다르게 계산됩니까? 문서에는 이것에 대해 아무 말도 없습니다....
 
artmedia70 :
주석과 함께 차트의 모든 플래그를 표시하면 거래가 열리는 이유가 명확해질 것입니다.

개입, 지금은 전혀 커밋하지 않습니다.
파일:
1_1.mq4  21 kb
 
Ivn :

개입, 지금은 전혀 커밋하지 않습니다.

왜 그래? 한 번에 하나의 Comment `에 있는 모든 플래그를 표시합니다.

바로 여기에:

 int start()
  {
//----


 RefreshRates ();                         // Обновление данных
 Symb= Symbol ();
 int cnt, ticket, total;
 int ABuy= 0 ;                               // флаг на покупку /продажу   
 int ASell= 0 ;   
 
   Comment ( ".....Вот сюда и пишите вывод всех флагов......" );

 if (NewBar() == true)
{        
     x=x0; //передаем данные 
    x1=x01;
    x2=x02;