Здравствуйте.
Появилась необходимость в шаблоне советника, который при принятии решения об открытии/закрытии позиции опирался бы на показания одного или двух индикатора но, на нескольких таймфреймах. Думаю здесь, на mql4 такое уже есть, но с ходу не смог найти. Если кто встречал, кинте ссылочку, пожалуйста.
Вроде бы нашел что нужно.
Добавил в шаблон свою торговую функцию на примере стохастика, но почемуто не открывает сделки:
//+------------------------------------------------------------------+
//| функция выдачи торговых сиглналов |
//+------------------------------------------------------------------+
int yourFunction(int workPeriod)
{
int res=OP_BALANCE;
//----
double prevValueTF1MAIN = iStochastic(Symbol(),PERIOD_D1,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_MAIN,2);
double currValueTF1MAIN = iStochastic(Symbol(),PERIOD_D1,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_MAIN,1);
double prevValueTF1SIGNAL = iStochastic(Symbol(),PERIOD_D1,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_SIGNAL,2);
double currValueTF1SIGNAL = iStochastic(Symbol(),PERIOD_D1,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_SIGNAL,1);
double prevValueTF2MAIN = iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_MAIN,2);
double currValueTF2MAIN = iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_MAIN,1);
double prevValueTF2SIGNAL = iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_SIGNAL,2);
double currValueTF2SIGNAL = iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_SIGNAL,1);
double prevValueTF3MAIN = iStochastic(Symbol(),PERIOD_M15,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_MAIN,2);
double currValueTF3MAIN = iStochastic(Symbol(),PERIOD_M15,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_MAIN,1);
double prevValueTF3SIGNAL = iStochastic(Symbol(),PERIOD_M15,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_SIGNAL,2);
double currValueTF3SIGNAL = iStochastic(Symbol(),PERIOD_M15,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_SIGNAL,1);
if (prevValueTF1MAIN<prevValueTF1SIGNAL && currValueTF1MAIN>currValueTF1SIGNAL && currValueTF1MAIN<DownLevel && currValueTF1SIGNAL<DownLevel
&& prevValueTF2MAIN<prevValueTF2SIGNAL && currValueTF2MAIN>currValueTF2SIGNAL && currValueTF2MAIN<DownLevel && currValueTF2SIGNAL<DownLevel
&& prevValueTF3MAIN<prevValueTF3SIGNAL && currValueTF3MAIN>currValueTF3SIGNAL && currValueTF3MAIN<DownLevel && currValueTF3SIGNAL<DownLevel)
res=OP_BUY;
if (prevValueTF1MAIN>prevValueTF1SIGNAL && currValueTF1MAIN<currValueTF1SIGNAL && currValueTF1MAIN>UpLevel && currValueTF1SIGNAL>UpLevel
&& prevValueTF2MAIN>prevValueTF2SIGNAL && currValueTF2MAIN<currValueTF2SIGNAL && currValueTF2MAIN>UpLevel && currValueTF2SIGNAL>UpLevel
&& prevValueTF3MAIN>prevValueTF3SIGNAL && currValueTF3MAIN<currValueTF3SIGNAL && currValueTF3MAIN>UpLevel && currValueTF3SIGNAL>UpLevel)
res=OP_SELL;
//----
return (res);
}
Не подскажите где ошибся?
Вот тот же кусок из шаблона:
//+------------------------------------------------------------------+
//| функция выдачи торговых сиглналов |
//+------------------------------------------------------------------+
int yourFunction(int workPeriod)
{
int res=OP_BALANCE;
//----
double prevValue = iStochastic(Symbol(),workPeriod,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_SIGNAL,2);
double currValue = iStochastic(Symbol(),workPeriod,Kperiod,Dperiod,slowPeriod,MODE_SMA,0,MODE_SIGNAL,1);
if (currValue>DownLevel && prevValue<DownLevel) res=OP_BUY;
if (currValue<UpLevel && prevValue>UpLevel) res=OP_SELL;
//----
return (res);
}
думаю проблема в том что в шаблоне стохастих используется на 1 таймфрейме, я мне нужно 3 периода.
Как переписать код в этом случае? Добавить в вызов функции вместо 1 переменной workPeriod 3 своих переменных?
Выкладываю исходный шаблон и шаблон с моими изменениями
Osc - исходный
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Появилась необходимость в шаблоне советника, который при принятии решения об открытии/закрытии позиции опирался бы на показания одного или двух индикатора но, на нескольких таймфреймах. Думаю здесь, на mql4 такое уже есть, но с ходу не смог найти. Если кто встречал, кинте ссылочку, пожалуйста.