Подскажите пожалуйста, из-за чего может происходить такой глюк?
Работает, работает, всё нормально, вдруг раз..ни с того ни с сего :-(
Причем, не просто точки рисует там где не надо, но и в окне данных показывает неправильные данные (соотв. расположению точек)
(Индикатор показывает экстремумы, написал сам )
После "передергивания" таймфрейма всё становится нормальным
Может подскажите, в какую сторону "рыть". Или может уже есть где то такая тема на форуме.
Заранее спасибо!
Писал похожий, случалось также как у тебя. Обратил внимание если индикатор вычисляется дольше чем один тик, то задвоения не происходят. Добавь условие потяжелее или sleep. Но я ни разу не программист, это наблюдение.
Operr: Писал похожий, случалось также как у тебя. Обратил внимание если индикатор вычисляется дольше чем один тик, то задвоения не происходят. Добавь условие потяжелее или sleep. Но я ни разу не программист, это наблюдение.
Не совсем понял. может "вычисляется больше чем на 1 баре?"
Вспомнил про Fractals (MQL4) / Я его переделал, чтоб начинал считать с бара №3. Т.е. после него должны закончиться 2 бара,
В оригинале индикатор раньше рисовал "точку"..кажется на баре № 2..(т.е. нулевой бар тоже считал)
НО! зато если эта точка пробивалась раньше чем через2 бара то она оставалась там же
и получалось, что справа нет двух более низких баров, а верхний фрактал рисуется. поэтому я и переделал его
Есть торговые условия вида, определены так: Покупать если %D линия стохастика пересекает отметку 30, при этом предыдущий бар должен быть ниже значения 29(получается отметка пересекается снизу вверх). В тестере я задал небольшой временной интервал на часовом тайм фрейме, чтобы посчитать количество сигналов вручную и сравнить с показаниями советника. Дожно получиться 6 сигналов, но советник просто выдает стену текста с сигналами на бай, а в идеале должно быть только 6.
Вот код советника, может кто подскажет что я делаю не правильно?
// Значения торговлиexterndouble TP = 100;
externdouble Lots = 0.1;
externdouble SL = 50;
// Значения стохастикаexternint Dperiod = 24;
externint Kperiod = 3;
externint Slowing = 6;
externint St_buy = 30;
externint St_sell = 70;
int signal;
int ticket;
int Stoch(int st_bars = 0, int st_type = 0){ // 1 параметр - бары, 2 параметр - тип линии.int st_result;
if (st_type == 0 || st_type == 1 && st_bars >= 0){
st_result = iStochastic(NULL,0,Dperiod,Kperiod,Slowing,MODE_SMA,0,st_type,st_bars);
if (st_result > -1) return(st_result);
}
elsereturn(-1);
return(0);
}
int Criterion() // 10 - open buy, 11 - close buy, 20 - open sell, 21 - close sell.
{
int St_M, St_S;
St_M = Stoch();
St_S = Stoch(0,1);
if (St_M >= St_buy && Stoch(1,0) < (St_buy-1)) return(10);
return(0);
}
int start()
{
if (Criterion() == 10 && AccountFreeMargin() > Lots*5000){
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Bid - SL * Point, Ask + TP * Point, "My order #", 16384, 0, Green);
}
return(0);
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Подскажите пожалуйста, из-за чего может происходить такой глюк?
Работает, работает, всё нормально, вдруг раз..ни с того ни с сего :-(
Причем, не просто точки рисует там где не надо, но и в окне данных показывает неправильные данные (соотв. расположению точек)
(Индикатор показывает экстремумы, написал сам )
После "передергивания" таймфрейма всё становится нормальным
Может подскажите, в какую сторону "рыть". Или может уже есть где то такая тема на форуме.
Заранее спасибо!
Написать нормально индикатор и проблемы исчезнут
Написать нормально индикатор и проблемы исчезнут
Нормально это как? Если бы знал, то не спрашивал бы здесь.
К слову сказать индикатор Fractals который скачал на MQL "вытворяет" то же самое.
https://www.mql5.com/ru/code/7982
значит он тоже написан некорректно?
Подскажите пожалуйста, из-за чего может происходить такой глюк?
Работает, работает, всё нормально, вдруг раз..ни с того ни с сего :-(
Причем, не просто точки рисует там где не надо, но и в окне данных показывает неправильные данные (соотв. расположению точек)
(Индикатор показывает экстремумы, написал сам )
После "передергивания" таймфрейма всё становится нормальным
Может подскажите, в какую сторону "рыть". Или может уже есть где то такая тема на форуме.
Заранее спасибо!
Писал похожий, случалось также как у тебя. Обратил внимание если индикатор вычисляется дольше чем один тик, то задвоения не происходят. Добавь условие потяжелее или sleep. Но я ни разу не программист, это наблюдение.
Не совсем понял. может "вычисляется больше чем на 1 баре?"
Вспомнил про Fractals (MQL4) / Я его переделал, чтоб начинал считать с бара №3. Т.е. после него должны закончиться 2 бара,
В оригинале индикатор раньше рисовал "точку"..кажется на баре № 2..(т.е. нулевой бар тоже считал)
НО! зато если эта точка пробивалась раньше чем через2 бара то она оставалась там же
и получалось, что справа нет двух более низких баров, а верхний фрактал рисуется. поэтому я и переделал его
Встоенный fractals удаляет кстати...
Ладно... будем думать
Добавь условие потяжелее или sleep.
Как сделать, чтомы МА расчитывалась одна по хай, а вторая по лоу?
MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_1
MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_2
MA_3_t=iMA(NULL,0,Period_MA_3,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_3
if (MA_2_t > MA_3_t + Rastvor*Point) // Если разница между
{ // ..МА 2 и 3 большая
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}
if (MA_1_t < MA_3_t - Rastvor*Point) // Если разница между
{ // ..МА 1 и 3 большая
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
}
Нужно, чтобы МА_1 расчитывалась по High
МА_2 расчитывалась по Low
МА_3 расчитывалась по Close
И как сделать, чтоб все скользящие были SMA
Как сделать, чтомы МА расчитывалась одна по хай, а вторая по лоу?
MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_1
MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_2
MA_3_t=iMA(NULL,0,Period_MA_3,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_3
if (MA_2_t > MA_3_t + Rastvor*Point) // Если разница между
{ // ..МА 2 и 3 большая
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}
if (MA_1_t < MA_3_t - Rastvor*Point) // Если разница между
{ // ..МА 1 и 3 большая
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
}
Нужно, чтобы МА_1 расчитывалась по High
МА_2 расчитывалась по Low
МА_3 расчитывалась по Close
И как сделать, чтоб все скользящие были SMA
Все ответы там
Все ответы там
Народ, требуется ваша помощь.
Есть торговые условия вида, определены так: Покупать если %D линия стохастика пересекает отметку 30, при этом предыдущий бар должен быть ниже значения 29(получается отметка пересекается снизу вверх). В тестере я задал небольшой временной интервал на часовом тайм фрейме, чтобы посчитать количество сигналов вручную и сравнить с показаниями советника. Дожно получиться 6 сигналов, но советник просто выдает стену текста с сигналами на бай, а в идеале должно быть только 6.
Вот код советника, может кто подскажет что я делаю не правильно?
Подскажите пожалуйста, из-за чего может происходить такой глюк?
Работает, работает, всё нормально, вдруг раз..ни с того ни с сего :-(
Причем, не просто точки рисует там где не надо, но и в окне данных показывает неправильные данные (соотв. расположению точек)
(Индикатор показывает экстремумы, написал сам )
После "передергивания" таймфрейма всё становится нормальным
Может подскажите, в какую сторону "рыть". Или может уже есть где то такая тема на форуме.
Заранее спасибо!
все до вас уже украдено - это наподобие МастерФорекс версии 5... Есть еще и 4 -версия, но пока не могу найти, если надо найду.