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ı?
Buraya bakın https://www.mql5.com/en/code/10653
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
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
Ne çalışmıyor? Çelişki nerede?
Yoksa uyarım dondu ve sen, ne - kabul etti?
ve sen, ne - anlaştık mı?Ne çalışmıyor? Çelişki nerede?
takas sor ve teklif ver, şöyle oldu:
Bu daha iyi :)))