
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так как я пишу для бинарных опционов я сделала чуть иначе:
Так наверное будет верно?
Вот помоему в чем проблема
В терминале по 1 ордеру 2 строки
И по ордеру который выставил советник Профит == 0
Вот помоему в чем проблема
В терминале по 1 ордеру 2 строки
И по ордеру который выставил советник Профит == 0
где Вы нашли цену меньше нуля, покажите скрин?
на этом скрине такого нет
По всему алгоритму вам уже надавали советов, я не хочу встревать и даже не смотрел ваш код и так-же советы… А вот это
бросилось в глаза. В связи с этим вопрос: разве не проще и более читабельно применить оператор-переключатель switch
Мне кажется так читается и понимается легче. Возможно и работает чуток побыстрей.Может вместо функции использовать просто массив volume[n] ?
Может и да… Согласен.
где Вы нашли цену меньше нуля, покажите скрин?
на этом скрине такого нет
Пытаюсь получить OrderProfit() - выдает 0
вот подтверждение нашла профит -0,01 как разберется из той дополнительной строки

Может и да… Согласен.
В общем не понял про отрицательную цену, нет её по прежнему
считайте общий профит примерно так (выкопировка)
то что Вам пригодится выделил
for(i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderType()==ORDER_TYPE_BALANCE && OrderCloseTime()>startDate)Withdrawal=Withdrawal+OrderProfit()+OrderCommission()+OrderSwap();
if((OrderType()==ORDER_TYPE_BUY || OrderType()==ORDER_TYPE_SELL))
{
if(OrderCloseTime()>iTime(Symbol(),PERIOD_D1,0))hystCurrDay=hystCurrDay+OrderProfit()+OrderCommission()+OrderSwap();
if(OrderCloseTime()<iTime(Symbol(),PERIOD_D1,0) && OrderCloseTime()>iTime(Symbol(),PERIOD_D1,1))hystPrevDay=hystPrevDay+OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
Мне не платят это для себя и саморазвития. После работы интересно позаниматься поиском Грааля
Не обращайте внимания. Это у нас с Николаем такой междусобойчик образовался…
По сути вашей проблемы: поскольку OrderProfit() на БО не даёт реального значения, вам надо определять положительно\отрицательно закрытый ордер как разницу цены закрытия и цены открытия ордера. Вам об этом уже говорили
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Проверьте - что я не правильно сделала?
Renat Akhtyamov, 2021.12.21 09:27
пока не пойму логики
как так?
как цена закрытия ордера может быть меньше нуля?
ордер BUY будет в плюсе, если цена закрытия больше цены открытия
вот условие плюса по покупке (без учета комиссий и свопа):
если наоборот, то это минусМне не платят это для себя и саморазвития. После работы интересно позаниматься поиском Грааля
Да, Наталья - это был просто мем из серии "Когда платят за строчку кода"
Это такой юмор у программистов

В Вашем случае нет необходимости в функции
Необходимо просто переменые Volume1 ... Volume10 сформировать изначально в виде массива volume[10]
и потом по индексу n обращаться к его элементам volume[n].
Не беспокойтесь - через это проходил почти каждый программист.
Главное, что Вас реально прёт от программирования. Я это чувствую.
Значит - далеко пойдете.