во первых нужно избавиться от всех циклов, это написано в справке по OnChartEvent, у вас сейчас приходит тик и потом еще в цикле прогоняется второй раз
if(id>=CHARTEVENT_CUSTOM)
{
//--- Если было событие "тик"if(lparam==0x00200000)
{
datetime t[1];
//--- Получаем номер символа в массивеint s=GetNumberSymbol(sparam);
// --- перебираем все периоды по нашему символу for(int p=0;p<NUMBER_OF_PERIODS; p++)
{
CopyTime(Symbols[s],Periods[p],0,1,t);
//--- Получим значения индикатораif(CopyBuffer(signal_indicator_handles[s][p],0,0,1,Indicator[s][p].sell)<1 || CopyBuffer(signal_indicator_handles[s][p],1,0,1,Indicator[s][p].buy)<1)
{
Print("Не удалось скопировать значения ");
return;
}
if(Indicator[s][p].buy[0]!=0 && Symbols[s]=="USDCHF.m" && Periods[p]==PERIOD_M1) Print(Symbols[s]," ",TimeframeToString(Periods[p])," ",Indicator[s][p].buy[0]," ",t[0]);
if(Indicator[s][p].sell[0]!=0 && Symbols[s]=="USDCHF.m" && Periods[p]==PERIOD_M1) Print(Symbols[s]," ",TimeframeToString(Periods[p])," ",Indicator[s][p].sell[0]," ",t[0]);
}
}
}
Вы имеете ввиду выделенный цикл? если так - то тут все верно.. на каждом тике я просматриваю все периоды на наличие сигнала
Вы имеете ввиду выделенный цикл? если так - то тут все верно.. на каждом тике я просматриваю все периоды на наличие сигнала
темный лес этот OnChartEvent, забыл его как страшный сон, Анатолий Казарский автор 648 тоже воевал с ним) длинные темы есть, мультисимвол + мультитаймфрейм при сильных движениях график думаю встанет, в отличие от OnTick эта штука копит очередь
Начните с простого: текущий таймфрейм и заданный, текущий символ и заданный. То есть два таймферйма и два символа - итого четыре индикатора. Индикатор возьмите любой.
плюс дополнил: никаких OnChartEvent. То есть максимально компактно в одном файле советника. Минимум кода.
Дано: работаем на EURUSD, H1. Второй символ USDJPY, второй таймфрейм H4.
Создаём четыре хендла (пример для Moving Average) : MA EURUSD H1, MA EURUSD H4, MA USDJPY H1 и MA USDJPY H4.
В OnTick() опрашиваем четыре индикатора.
Таким алгоритмом мы будем анализировать допустим несколько пар валют, - НО по событию тика только того графика на который будет накинут советник. Т.е. к примеру кинули советник на EURUSD и ждем тика....а в это время на паре USDJPY уже прошло 5 тиков - как тут? Это в корне - неправильно!
Таким алгоритмом мы будем анализировать допустим несколько пар валют, - НО по событию тика только того графика на который будет накинут советник. Т.е. к примеру кинули советник на EURUSD и ждем тика....а в это время на паре USDJPY уже прошло 5 тиков - как тут? ***
Да, именно так. На самом деле это очень простой вариант без событий, агентов и тому подобного.
Да, именно так. На самом деле это очень простой вариант без событий, агентов и тому подобного.
ВЫ сначала такую схему реализуйте.
Ну так ведь это просто! Мне такой алгоритм не подходит и реализовать я его умею.. у меня другая ситуация... почему и промошу помощи. То что предлагаете мне Вы это примитивно, легко и бесполезно в данном случае)
Ну так ведь это просто! Мне такой алгоритм не подходит и реализовать я его умею.. у меня другая ситуация... почему и промошу помощи. То что предлагаете мне Вы это примитивно, легко и бесполезно в данном случае)
такого не может быть...к примеру при пробитии наклонной линии. - есть пробитие= есть сигнал
во первых нужно избавиться от всех циклов, это написано в справке по OnChartEvent
во первых нужно избавиться от всех циклов, это написано в справке по OnChartEvent, у вас сейчас приходит тик и потом еще в цикле прогоняется второй раз
Вы имеете ввиду выделенный цикл? если так - то тут все верно.. на каждом тике я просматриваю все периоды на наличие сигнала
Вы имеете ввиду выделенный цикл? если так - то тут все верно.. на каждом тике я просматриваю все периоды на наличие сигнала
темный лес этот OnChartEvent, забыл его как страшный сон, Анатолий Казарский автор 648 тоже воевал с ним) длинные темы есть, мультисимвол + мультитаймфрейм при сильных движениях график думаю встанет, в отличие от OnTick эта штука копит очередь
я же так и сделал...я сделал один символ и один период - все! выдает то что на рисунке
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Мультивалютный - мультитаймовай советник
Vladimir Karputov, 2018.09.12 13:45
Начните с простого: текущий таймфрейм и заданный, текущий символ и заданный. То есть два таймферйма и два символа - итого четыре индикатора. Индикатор возьмите любой.
плюс дополнил: никаких OnChartEvent. То есть максимально компактно в одном файле советника. Минимум кода.
плюс дополнил: никаких OnChartEvent. То есть максимально компактно в одном файле советника. Минимум кода.
Владимир, здесь вообще ничего не понял, можно пояснить?
Владимир, здесь вообще ничего не понял, можно пояснить?
Дано: работаем на EURUSD, H1. Второй символ USDJPY, второй таймфрейм H4.
Создаём четыре хендла (пример для Moving Average) : MA EURUSD H1, MA EURUSD H4, MA USDJPY H1 и MA USDJPY H4.
В OnTick() опрашиваем четыре индикатора.
Дано: работаем на EURUSD, H1. Второй символ USDJPY, второй таймфрейм H4.
Создаём четыре хендла (пример для Moving Average) : MA EURUSD H1, MA EURUSD H4, MA USDJPY H1 и MA USDJPY H4.
В OnTick() опрашиваем четыре индикатора.
Таким алгоритмом мы будем анализировать допустим несколько пар валют, - НО по событию тика только того графика на который будет накинут советник. Т.е. к примеру кинули советник на EURUSD и ждем тика....а в это время на паре USDJPY уже прошло 5 тиков - как тут? Это в корне - неправильно!
Таким алгоритмом мы будем анализировать допустим несколько пар валют, - НО по событию тика только того графика на который будет накинут советник. Т.е. к примеру кинули советник на EURUSD и ждем тика....а в это время на паре USDJPY уже прошло 5 тиков - как тут? ***
Да, именно так. На самом деле это очень простой вариант без событий, агентов и тому подобного.
ВЫ сначала такую схему реализуйте.
Да, именно так. На самом деле это очень простой вариант без событий, агентов и тому подобного.
ВЫ сначала такую схему реализуйте.
Ну так ведь это просто! Мне такой алгоритм не подходит и реализовать я его умею.. у меня другая ситуация... почему и промошу помощи. То что предлагаете мне Вы это примитивно, легко и бесполезно в данном случае)
Ну так ведь это просто! Мне такой алгоритм не подходит и реализовать я его умею.. у меня другая ситуация... почему и промошу помощи. То что предлагаете мне Вы это примитивно, легко и бесполезно в данном случае)
Ах вон оно как :)
Тогда вежливо откланиваюсь.