Затеял создать функцию подсчитывающую общий профит по конкретному символу,
в данном случае на текущем графике...
но что-то фигушки одни... :((( показывает
так тоже:
Может в цикле так нельзя считать?Надо вот так:
double FullProfitSymbol() { double buyP, profs; double buysprof; for (int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--) { if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))continue; if(OrderType()==OP_BUY || OP_SELL && OrderSymbol()==Symbol()) { buysprof=OrderProfit()+OrderCommission()+OrderSwap(); buyP+=buysprof; } } profs=NormalizeDouble(buyP,2); return(profs); }
попробуйте так:
double FullProfitSymbol() { double buyP=0, double profs=0; for (int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol()==Symbol()) { double buysprof=OrderProfit()+OrderCommission()+OrderSwap(); buyP=buysprof+buyP;} } profs=NormalizeDouble(buyP,2); return(profs); }
Опоздал))) но по-моему, надо инициализировать buyP
Спасиб! попробую...
-
Попутный вопрос по органиции цикла.
(давно уже витает, да всё спросить забываю)
- чем основан выбор обратного отсчёта перед прямым?
Спасиб! попробую...
-
Попутный вопрос по органиции цикла.
(давно уже витает, да всё спросить забываю)
- чем основан выбор обратного отсчёта перед прямым?
Если в цикле будете удалять ордера, то при прямом отчете не все ордера попадут в обработку. Поищите по форуму не раз уже было.
К примеру вот.
Работает! ещё раз спасибо...
*
Другая проблема нарисовалась, из другой оперы.
Та функция что разобрали учавствует в расчёте уровня "безубытка" для позиций символа BezUb() .
Результат которого заносится в свойства обычной вертикальной линии на графике...
ObjectDelete("БЕЗУБ"); color безб=Yellow; if (Position() == "SELL") безб=Red; if (Position() == "ZERO") безб=Blue; if (Position() == "BUY") безб=Green; ObjectCreate("БЕЗУБ",OBJ_HLINE,0,0,BezUb(),0,0,0,0); ObjectSet( "БЕЗУБ", OBJPROP_STYLE, 1); ObjectSet( "БЕЗУБ", OBJPROP_WIDTH, 1); ObjectSet( "БЕЗУБ", OBJPROP_COLOR, безб); // Цвет ObjectSetText("БЕЗУБ","бзб",10);
так вот обновить и начать "работу" этой линии можно только после смены т-ф.
Достаточно просто переключится и всё...
Впрочем любое изменение кода в расчётах, дальнейшая компиляция, приводит к тому же эффекту.
И относится ко всем обьектам и комменту в этом индикаторе...
Чуть позже выложу весь код если непонятки о чём это я тут речь толкаю.
Должна помочь функция.
Справочник MQL4 - Операции с графиками - WindowRedraw()
|
|
Дык стоит... в самом конце функции старт.
... ObjectSetText("БЕЗУБ","бзб",10); WindowRedraw(); return(0); }
и насколько понял перерисовывает все обьекты, т.е. не надо под каждый её подсовывать.
Ладно. Это не столь важно пока...
А вот за это:
Если в цикле будете удалять ордера, то при прямом отчете не все ордера попадут в обработку.
отдельный большой сэнкс... ;)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Затеял создать функцию подсчитывающую общий профит по конкретному символу,
в данном случае на текущем графике...
но что-то фигушки одни... :((( показывает
так тоже:
Может в цикле так нельзя считать?