MT4. Вопрос по написанию советника: не срабатывает условие завязанное на рыночной цене - страница 5
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Период в 2,5 года не может быть случайным ;)
Идею понял, что нужно код доработать.
С наступившей продуктивной неделей! :)
И вопрос на зацепку:
Вот как такое возможно: пишу элементарщину -> Лонг если Bid больше чем Close[1] - все работает.
Пишу: Лонг если Bid больше чем High[2] - и не работает
Пишу: Лонг если Bid больше чем High[1] - и не работает. Точнее срабатывает, но не всегда, а именно тогда, когда сигнал ложный. Но пропускает полно прибыльных сигналов.
Это как?
Подскажите пожалуйста,
каким кодом можно описать диапазон цен?
Поясню: чтобы не пришлось писать Close[1]=Close[2]+0.0001 , Close[1]=Close[2]+0.0002, Close[1]=Close[2]+0.0003 и т.д. (так очень длинный код получится)
А написать диапазон Close[2] + от ... до ....
Подскажите пожалуйста,
каким кодом можно описать диапазон цен?
Поясню: чтобы не пришлось писать Close[1]=Close[2]+0.0001 , Close[1]=Close[2]+0.0002, Close[1]=Close[2]+0.0003 и т.д. (так очень длинный код получится)
А написать диапазон Close[2] + от ... до ....
Не совсем понятно что вы хотите. Массив цен закрытия только для чтения ему нельзя присваивать значения Close[1] = Close[2] ..... выдаст ошибку.
Не совсем понятно что вы хотите. Массив цен закрытия только для чтения ему нельзя присваивать значения Close[1] = Close[2] ..... выдаст ошибку.
Ну вот например, меня устраивает, если цена 1,001 = 1,002; а так же меня устраивает, что цена 1,001 = 1,003 и так до 1,010 например.
Как сказать кодом, что эти цифры должны быть равны? ))))
Надеюсь в этот раз получилось правильно выразиться. )))))
Или так выражусь: Если значение Close[2] попадает в диапазон от Close[1]-5 до Close[1]+5, то применяется следующее условие.
Ну вот например, меня устраивает, если цена 1,001 = 1,002; а так же меня устраивает, что цена 1,001 = 1,003 и так до 1,010 например.
Как сказать кодом, что эти цифры должны быть равны? ))))
Надеюсь в этот раз получилось правильно выразиться. )))))
Или так выражусь: Если значение Close[2] попадает в диапазон от Close[1]-5 до Close[1]+5, то применяется следующее условие.
Можно написать примерно так.
int Delta = 5;//диапазон +\- в пунктах
bool PriceInRange = false;// лог. переменная
PriceInRange = (Close[2]<=Close[1]+Delta * Point() ) && (Close[2]>=Close[1]-Delta*Point() );
if (PriceInRange)
{
.......
// ваш код
}
Можно написать примерно так.
int Delta = 5;//диапазон +\- в пунктах
bool PriceInRange = false;// лог. переменная
PriceInRange = (Close[2]<=Close[1]+Delta * Point() ) && (Close[2]>=Close[1]-Delta*Point() );
if (PriceInRange)
{
.......
// ваш код
}
Здравствуйте, помогите советом. пишу сам советник. наверно это все та делают, походу его написания тестирую и смотрю что работает, а что нет. проблема вот в чем. дописал код протестил, все работает как надо, спустя какое-то время, снова тестирую он начинает глючить(открывает и сразу закрывает), почему так? при этом в терминале на демо счете, все работает
void ConditionsB()
{
if(zspread<=spread) //проверяю значение спреда
{
if(zth>=0.000150 && TotalTic()<=50 && imacdvB<=imacdv && imacdsB<=imacds) //условия для открытия ордера
{
openB =true; //сигнал открыть ордер на покупку
closeS=true; //сигнал закрыть ордер на продажу
}
else
{
openB =false; //нет сигнала
closeS=false; //нет сигнала
}
}
}