[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 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()?

 
 
Ve neyi ima ettiğini anlıyorum, yanlış mı düşünüyorum? Açıklayayım: Sadece bir çift için açılan anlaşmalarım var, bu betiği bu çift üzerinde çalıştırıyorum ve hesap-kâr işlevi tarafından döndürülen sonuçtan farklı bir sonuç gösteriyor. Önerdiğiniz çözüm bana uymuyor çünkü sor ve teklif ver yerine yeni veriler koyacağım, anlaşıldı mı?
 
fore-x :
Ve neyi ima ettiğini anlıyorum, yanlış mı düşünüyorum?

hayır demek istedim

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

Orada, öyle görünüyor ki, boyalı hakkında mevcut.

Ve (OrderOpenPrice() - Ask)/Point ifadesini bir tamsayıya normalleştirmeye çalışın

 
Roger :

hayır, demek istedim

Orada, öyle görünüyor ki, boyalı hakkında mevcut.

Ve (OrderOpenPrice() - Ask)/Point ifadesini bir tamsayıya normalleştirmeye çalışın

 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 )
           );
    }
  }

Не получается, но хоть со спредом вопрос отпал!
 
Ne çalışmıyor? Çelişki nerede?
 
Roger :
Ne çalışmıyor? Çelişki nerede?


Yoksa uyarım dondu ve sen, ne - kabul etti?
 
fore-x :


ve sen, ne - anlaştık mı?
Benim de çabucak bir danışman bulup kontrol etmeye başlamam gerektiğini mi ima ediyorsun? Oh, kov beni, daha iyi sanalım.
 
Roger :
Ne çalışmıyor? Çelişki nerede?

takas sor ve teklif ver, şöyle oldu:


Bu daha iyi :)))

 
Hangi para birimi?