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

 
void start()
  {
  double tickvalue = MarketInfo(Symbol(), MODE_TICKVALUE);
  double profitbuy, profitsell;
  
  for(int i = OrdersTotal()-1; i >= 0;i--)
    {
    if(!OrderSelect(i,SELECT_BY_POS)) continue;
    if(OrderSymbol()!=Symbol() || OrderType() >= 2) continue;
    if(OrderType() == 0)
      profitbuy +=((Bid - OrderOpenPrice())/Point*tickvalue*OrderLots())+OrderCommission()+OrderSwap();
    if(OrderType() == 1)
      profitsell+=((OrderOpenPrice() - Ask)/Point*tickvalue*OrderLots())+OrderCommission()+OrderSwap();
    }
  
  Comment(profitbuy+profitsell);
  }
В чем прикол, не могу правильно рассчитать суммарный профит для всех ордеров по одной паре, в терминале пишет одно, а у меня получается другое?

Итак, мои домыслы, своп в терминале нужно нормализовать обязательно, там точность больше двух бывает - это проверил, но как нормализовать - для каждого ордера или суммарно? Непонятно в общем...
Я уже всяко перепробовал, минимальная разница доходила до 0.02 центов, но это все равно не то, что нужно.

Вопрос, как мне мой код подогнать под работу функции - AccountProfit()?

 
 
Roger :
여기를 보세요 https://www.mql5.com/en/code/10653
그리고 당신이 암시하는 바를 이해합니다. 내가 잘못 생각합니까? 설명하겠습니다: 한 쌍에 대해서만 열린 거래가 있고 이 스크립트를 이 쌍에 대해 실행하고 계정 이익 함수에서 반환된 결과와 다른 결과를 표시합니다. 당신이 제안한 솔루션은 나에게 적합하지 않습니다. 묻고 입찰하는 대신 새 데이터를 넣을 것이기 때문입니다.
 
fore-x :
그리고 당신이 암시하는 바를 이해합니다. 내가 잘못 생각합니까?

아니, 내 말은

Вопрос, как мне мой код подогнать под работу функции - AccountProfit ()?

거기, 그것은 그려진 것에 대해 사용할 수 있습니다.

그리고 표현식을 정규화하려고 시도하십시오 (OrderOpenPrice() - Ask)/정수를 가리킴

 
Roger :

아니, 내 말은

거기, 그것은 그려진 것에 대해 사용할 수 있습니다.

그리고 표현식을 정규화하려고 시도하십시오 (OrderOpenPrice() - Ask)/정수를 가리킴

 void start()
  {
   double tickvalue = MarketInfo ( Symbol (), MODE_TICKVALUE);
   double profitbuy, profitsell;
  
   for ( int i = OrdersTotal ()- 1 ; i >= 0 ;i--)
    {
     if (! OrderSelect (i,SELECT_BY_POS)) continue ;
     if ( OrderSymbol ()!= Symbol () || OrderType () >= 2 ) continue ;
     if ( OrderType () == 0 )
       Alert (
             OrderTicket (), "   " ,
             NormalizeDouble ( OrderCommission ()+ OrderSwap (), 2 ), "   " ,
             NormalizeDouble ( NormalizeDouble ((Bid - OrderOpenPrice ())/ Point , 0 )*tickvalue* NormalizeDouble ( OrderLots (), 2 ), 2 )
           );
           
     if ( OrderType () == 1 )
       Alert (
             OrderTicket (), "   " ,
             NormalizeDouble ( OrderCommission ()+ OrderSwap (), 2 ), "   " ,
             NormalizeDouble ( NormalizeDouble (( OrderOpenPrice () - Ask)/ Point , 0 )*tickvalue* NormalizeDouble ( OrderLots (), 2 ), 2 )
           );
    }
  }

Не получается, но хоть со спредом вопрос отпал!
 
작동하지 않는 것은 무엇입니까? 불일치는 어디에 있습니까?
 
Roger :
작동하지 않는 것은 무엇입니까? 불일치는 어디에 있습니까?


아니면 내 경고가 동결되었고 당신은 무엇에 동의 했습니까?
 
fore-x :


그리고 당신은 무엇에 동의 했습니까?
내가 빨리 고문을 구성하고 확인을 시작해야 한다는 암시인가요? 오, 날 해고해, 난 가상이 더 좋아.
 
Roger :
작동하지 않는 것은 무엇입니까? 불일치는 어디에 있습니까?

물음과 입찰을 바꾸면 다음과 같이 됩니다.


그게 낫다 :)))

 
어떤 통화?