[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 78
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Условие под 1-м условным оператором if у Вас действует только на следующий за ним оператор (следующая строка).
Остальные выполняются БЕЗУСЛОВНО. Т.е. даже если нет команды на закрытие ордера, то один из плейсаундов отработает.
Правильнее так:
В том то и дело что работают оба плейсунда - PlaySound("timeout.wav") срабатывает, после него PlaySound("money.wav"), сделка закрывается нормально но перед ее закрытием идет плейсаунд ошибки и эта штука срабатывает только для коротких сделок, для длинных все нормально-PlaySound("money.wav") если закрылась и PlaySound("timeout.wav") если ошибка, для длинных и коротких конструкция одинаковая. Ща попробую скобки расставить как Вы описали, фиг знает мож дело в них))
... Ща попробую скобки расставить как Вы описали, фиг знает мож дело в них))
С таким подходом трудно добиться положительного результата.
С таким подходом трудно добиться положительного результата.
Глубоко убежден что результат не зависит от способа изложения текста на форуме)) По крайней мере к интеллегенции себя не отношу, ну эт фигня все не в тему))
Сделал скобки фигурные для посылки ордера, тоже самое, сначала звук ошибки потом звук закрытия. Для длинных все нормально также как и было. Так то все работает конечно, просто недавно вставил фунцию, чтоб ошибки было видно какие, вот и появился этот звук раньше звука закрытия, а до этого и не замечал естественно-все же пашет
Так, для справки. Команда PlaySound() не ждет, когда предыдущий звук отработает до конца, а просто перебивает и запускает свой. При быстром переборе промежуточные звуки могут поглощаться.
Так, для справки. Команда PlaySound() не ждет, когда предыдущий звук отработает до конца, а просто перебивает и запускает свой. При быстром переборе промежуточные звуки могут поглощаться.
Ладно бы только в звуке было дело, ошибка "Нет ошибки" вылазит в журнале при любом закрытии коротких сделок, 3 сделки закрываются - вылезет 3 ошибки итд, но после этого все закрывается и в журнале прописывается закрытие, для длинных сделок все нормально, и звуки работают как задумано, и ошибка не прописывается, вставлял слип на 3 секунды и на 5 секунд, все тоже самое, только с соответствующей задержкой
Ладно бы только в звуке было дело, ошибка "Нет ошибки" вылазит в журнале при любом закрытии коротких сделок, 3 сделки закрываются - вылезет 3 ошибки итд, но после этого все закрывается и в журнале прописывается закрытие, для длинных сделок все нормально, и звуки работают как задумано, и ошибка не прописывается, вставлял слип на 3 секунды и на 5 секунд, все тоже самое, только с соответствующей задержкой
Ты знаешь, было подобное у меня, бился-бился, ставил задержки - накакого прогресса. Тогда стал проверять закрытие по
if(OrderCloseTime()!=0)
сразу все проблемы ушли. Попробуй.
Подскажите, пожалуйста. Есть переменная, которая должна рассчитываться для каждого бара индивидуально т.е [i+1]=0.9, [i+2]=0.8, [i+3]=1,5........ а у меня получается, что ко всем барам на истории применяется последнее посчитаное значение.........если последнее 1, то [i+1]=1, [i+2]=1, [i+3]=1 и если последнее 2, [i+1]=2, [i+2]=2, [i+3]=2 соответственно....
Так трудно сказать, выкладывай этот кусок кода полностью.
Если возникает необходимость в отладке, то через Print()
Но в большинстве случаев такая необходимость не возникает.
А я вот щас другого мнения. Щас пишу советника и испытываю сильные проблемы без нормального отладчика. Особенно с массивами данных.
Чтобы быть точно уверенным что алгоритм работает правильно, мне надо анализировать данные которые попадают туда при расчете индикаторов. А массив не один
Что, кроме как Print(), Comment(), Alert() никаких больше средств нет ?
А это что за хрень? Для чего здесь OrderSelect()?
В остальном сложно разобраться, т.к. код выложен без отступов и за скобками невозможно следить - не хочу свое зрение портить.
Ладно, давай без хрени и чтобы зрение не портить
/---- input parametersextern int PerRSI=8;
extern int MagicNamber=77771;
extern double Lots=1.0;
//+------------------------------------------------------------------+
int start()
{
int
type, // тип ордера
cnt, // индекс ордера
ticket, // идентификационный номер ордера
total; // число уже открытых ордеров
double
rsi_0, // Значен. rsi_0 текущее
rsi_1; // Значен. rsi_1 1й бар
rsi_0=iRSI (NULL, 0, PerRSI, 0, 0); // Текущий бар
rsi_1=iRSI (NULL, 0, и PerRSI,0, 1); // Текущий бар плюс 1
if(rsi_0 < rsi_1 && rsi_1 < 30) // Если линия пересекла 30
ticket=OrderSend (Symbol(), OP_BUY,Lots, Ask, 3, 0, 0, "My RSI", MagicNamber, 0, Green);
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
if(rsi_0 > rsi_1 && rsi_1 > 60) // Если линия пересекла 70
OrderClose(ticket, OrderLots(), Bid, 3, Violet ); // закрываем позицию
return(0); // выходим
}
почему совок покупает и не закрывает, при комиляции ошибок нет