Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 173
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вас никто не называл "лошара", зря вы так. Но и 4-6 строк кода тоже, знаете-ли вызывают недоумение - ведь раз человек чему-то учится, то должен уже что-то пробовать, что-то уже пытался написать, и явно уже видит, что в 4-6 строчек не уместиться.
Покажите что вы пытались сделать - попробуем понять.
Могу предложить альтернативный, упрощённый вариант - не искать по тикам пересечение цены некоего уровня, а искать его по МА(1) - тогда МАшка на баре 1 и МАшка на баре 0 будут служить вам индикатором пересечения нужного вам уровня.
Простите что долго не отвечал. Я рад что получилось просто недоумение, я вспылил. А что касается моего вопроса, у меня получилось написать код, что бы открыть обычный ордер когда он достиг цены и что бы в последствии пересекая эту цену он не открывался вновь. Но я это сделал так:
return;
Я уже понял, что это "детсадовский" метод и с ним работать нельзя, потому что слишком много нюансов и вообще не практично. Можете сказать в какой именно ситуации код не будет работать или как можно изменить его что бы он был работоспособным? P.s. "искать его по МА(1) - тогда МАшка на баре 1 и МАшка на баре 0 будут служить вам индикатором пересечения нужного вам уровня. " Как то не очень понимаю о чем речь, так что это пока можно отложить, пока не изучу больше материала
Простите что долго не отвечал. Я рад что получилось просто недоумение, я вспылил. А что касается моего вопроса, у меня получилось написать код, что бы открыть обычный ордер когда он достиг цены и что бы в последствии пересекая эту цену он не открывался вновь. Но я это сделал так:
return;
Я уже понял, что это "детсадовский" метод и с ним работать нельзя, потому что слишком много нюансов и вообще не практично. Можете сказать в какой именно ситуации код не будет работать или как можно изменить его что бы он был работоспособным? P.s. "искать его по МА(1) - тогда МАшка на баре 1 и МАшка на баре 0 будут служить вам индикатором пересечения нужного вам уровня. " Как то не очень понимаю о чем речь, так что это пока можно отложить, пока не изучу больше материала
Сравнение на равенство двух чисел, тип double, это не очень хорошая операция.
как то, NormalizeDouble (А - Б , 5)==0, так наверное.
Всем добрый вечер!
Прошу помощи, не могу найти ошибку в коде.
Мне нужно определить был ли профит по моей паре, если был то не продолжать торговлю и закрыть советник, если не был то
выставляем отложенник.
Проблема в том, что при запуске советника, он тут же удаляется, т.е. срабатывает ExpertRemove(), хотя профита то еще не было.
Ниже часть кода:
void OnTick()
{
if (TakeProfit ()>0)
{
ExpertRemove();
}
if (TakeProfit ()<=0)
{
здесь выставляем отложку
}
}
//+------------------------------------------------------------------+
////////Ищем, были ли здесь отдера закрытые с профитом!!!!!!!!
int TakeProfit ()
{
int count = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect (i,SELECT_BY_POS,MODE_HISTORY) == true && OrderMagicNumber() == Magic && OrderSymbol () == Symbol () && OrderProfit()>0.0)
{
count ++;
}
}
return (count);
Всем добрый вечер!
Прошу помощи, не могу найти ошибку в коде.
Мне нужно определить был ли профит по моей паре, если был то не продолжать торговлю и закрыть советник, если не был то
выставляем отложенник.
Проблема в том, что при запуске советника, он тут же удаляется, т.е. срабатывает ExpertRemove(), хотя профита то еще не было.
Ниже часть кода:
////////Ищем, были ли здесь ... закрытые с профитом!!!!!!!!
int TakeProfit ()
{
int count = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect (i,SELECT_BY_POS,MODE_HISTORY) == true && OrderMagicNumber() == Magic && OrderSymbol () == Symbol () && OrderProfit()>0.0)
{
count ++;
}
}
return (count);
Что вы ищите этим кодом?
Он смотрит профит по всей истории, а не конкретно закрытой позиции, и если по всей истории плюс, то вы и получите при любом раскладе на выходе OrderProfit()>0
Что вы ищите этим кодом?
Он смотрит профит по всей истории, а не конкретно закрытой позиции, и если по всей истории плюс, то вы и получите при любом раскладе на выходе OrderProfit()>0
а как сделать чтобы искал не по всей, а по закрытым от момента работы советника?
я не догоняю.
Спасибо за помощь.
а как сделать чтобы искал не по всей, а по закрытым от момента работы советника?
я не догоняю.
Спасибо за помощь.
а как сделать чтобы искал не по всей, а по закрытым от момента работы советника?
я не догоняю.
Спасибо за помощь.
Как вы определяете момент работы советника?
предлагаю так;
Найти последнюю закрытую позицию, которая была закрыта позже времени запуска советника, либо последнюю закрытую в этот день, и поглядеть её профит: OrderProfit()+OrderComission()+OrderSwap()
зачем позже времени запуска советника? он же у меня итак ищет все закрытые позиции.
нужно чтобы он искал от начала работы советника, а не до.
зачем позже времени запуска советника? он же у меня итак ищет все закрытые позиции.
нужно чтобы он искал от начала работы советника, а не до.
Если немножечко подумать, то "от начала и дальше" будет именно позже времени запуска советника ;)
Не ленитесь пользоваться междуушным органом.
Здравствуйте.
Помогите, пожалуйста, отобразить в виде гистограммы, данные из файла.
В файле "file.txt" дате, соответствует некое число.
Данные из файла получаю и вывожу на принт,