Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1559
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день господа программисты!!
Помогите пожалуйста новичку с функцией.
Функция считает общую прибыль по истории.
Проблема в том, что она на одном брокере работает а на другом не хочет работать.
На Герчике работает а на Робофорексе нет. На робофорексе ECN счет.
Не пойму в чем прокол. Вот код:
double lastloss()
{
int typ = -1,cnt = 0;
double lastlos = 0;
for(int i = OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(cnt == 0) typ = OrderType();
if(cnt > 0 && OrderType()!= typ) break;
lastlos += OrderProfit() + + OrderSwap() + OrderCommission();
cnt++;
}
}
}
return(lastlos);
}
Интересно, компилятор не ругается на эту строку?
lastlos += OrderProfit() + + OrderSwap() + OrderCommission();
Может быть один + нужно убрать, для корректной работы?
И зачем вы своп с комиссией к прибыли прибавляете? При том чтоможет быть и отрицательным...
И о какой общей прибыли идет речь, если вы обрабатываете только 1 или несколько подходящих ордеров, но не все?
Далее:
остановка цикла.
1)На большой скорости или если не по тикам в тестере закроется по первой доступной цене.
2)У тебя идет увеличения лота и при большом лоте 1 пункт может быть больше допустимого уровня.
3)Я не понял что ты хочешь, что надо отслеживать если обнуление после каждой сделки?
3)Я не понял что ты хочешь, что надо отслеживать если обнуление после каждой сделки?
речь идет об отслеживании прибыли /убытка "внутри" каждой сделки, то есть, пока цена "болтается" между стопом и тейком, меняется и сумма прибыли и убытка от текущей сделки. Часто бывает так, что цена заходит в зону прибыли но до тейка не дотягивает- разворачивается и сделка закрывается по стопу. Мне отслеживание по прибыли и убытку (в деньгах) нужно чтобы можно было вовремя фиксануть, не смещая стоп и тейк, то есть не ломая заданные параметры тейка и стопа. Это актуально для крупных лотов при включенном мартине.
после того как сделка закрылась - отслеживание прекращается и начинается заново уже для новой сделки.
3)Я не понял что ты хочешь, что надо отслеживать если обнуление после каждой сделки?
речь идет об отслеживании прибыли /убытка "внутри" каждой сделки, то есть, пока цена "болтается" между стопом и тейком, меняется и сумма прибыли и убытка от текущей сделки. Часто бывает так, что цена заходит в зону прибыли но до тейка не дотягивает- разворачивается и сделка закрывается по стопу. Мне отслеживание по прибыли и убытку (в деньгах) нужно чтобы можно было вовремя фиксануть, не смещая стоп и тейк, то есть не ломая заданные параметры тейка и стопа. Это актуально для крупных лотов при включенном мартине.
после того как сделка закрылась - отслеживание прекращается и начинается заново уже для новой сделки.
Тебе достаточно указать параметры прибыли и убытка меньше стоплосс и тейкпрофит, т.е.
если ТейкПрофит стоит 200 пунктов 0,1 лот то прибыль $20, поставь уровень прибыли $15 и сделка закроется раньше
И зачем вы своп с комиссией к прибыли прибавляете? При том что
может быть и отрицательным...
Вот за это спасибо, я тоже такую глупость делал так делаю
Тебе достаточно указать параметры прибыли и убытка меньше стоплосс и тейкпрофит, т.е.
если ТейкПрофит стоит 200 пунктов 0,1 лот то прибыль $20, поставь уровень прибыли $15 и сделка закроется раньше
хорошо, спасибо, я подумаю и погоняю в тестере.
Прошу помощи у сообщества...
Как правильно объявить и создать глобальные объекты MQL5?
Если делать так:
то компилятор ругается на строку в OnTick(): 'NB_M1' - undeclared identifier, что логично, т.к. в OnInit() создается локальная переменная.
Если перед OnInit() вставить глобальное объявление:
то компилируется без ошибок и эксперт работает. Вроде получается, что объект создается два раза, при глобальном объявлении и в OnInit()...
Но в предупреждениях компилятора есть такое :
declaration of 'NB_M1' hides global variable -> на строку в OnInit()
see previous declaration of 'NB_M1'
Значит ли это, что в OnInit() создаётся локальная (в пределах функции) переменная, которая скрывает глобальную переменную с таким же именем ?
И если это так, как эту локальную переменную "видит" другая функция - OnTick() ?
Вот за это спасибо, я тоже такую глупость делал
Макар, раньше ты делал правильно, а теперь хочешь делать глупость…
Вспомни математику за 5, примерно, класс. Сколько будет (-3)-(-7) и сколько будет (-3)+(-7)
На калькуляторе сложно проверить, Excell тебе в помощь.
Здравствуйте. Кто знает какую-нибудь библиотеку в свободном доступе на MQL, для записи структур данных в файл и последующей их загрузки? Идеально подошла бы библиотека работающая с форматом json, парсер json и т.п.
Я уже и не знаю как вас послать читать документацию. Если читал и штатная функция не подходит по каким-то причинам, надо было сразу об этом сказать…
Макар, раньше ты делал правильно, а теперь хочешь делать глупость…
Вспомни математику за 5, примерно, класс. Сколько будет (-3)-(-7) и сколько будет (-3)+(-7)
На калькуляторе сложно проверить, Excell тебе в помощь.
Да, спасибо. Я поспешил с выводами. У меня все правильно)