Таймфрейм как переменная, какой тип объявления? - PullRequest
1 голос
/ 22 мая 2019

Я работаю над советником MQL4. Этот советник использует 2 отдельных сроки его сигналов и входов / выходов. До сих пор я использовал «sinput», чтобы позволить пользователю выбирать желаемый таймфрейм для индикаторов старшего таймфрейма.

Я хотел бы удалить эту опцию, и в моем коде автоматически устанавливаются оптимизированные пары. Я пытаюсь инициировать переменную «IndicatorTF», а затем назначить ей значение желаемого таймфрейма.

Каждая другая часть моего кода работает нормально, однако программная установка и изменение таймфреймов для меня новость.

Если я пытаюсь инициализировать переменную «IndicatorHTF» глобально, а затем фактически установить значение в «При инициализации», я получаю сообщение об ошибке, указывающее, что я не могу изменить константу. Однако, если я устанавливаю переменную «IndicatorHTF» непосредственно в «При инициализации», то перед тем, как она фактически используется, я получаю сообщение об ошибке, так как не могу найти правильный тип.

Я понимаю, что это не bool, int, double или string, но я понятия не имею, что мне следует использовать в качестве типа.

Что я пробовал:
1)

//Globally
ENUM_TIMEFRAMES IndicatorHTF; //with sinput,bool,string,etc
int OnInit()
{
   if(Period()==PERIOD_M1){resolution=PERIOD_M5;}
}

2)

int OnInit()
{
   ENUM_TIMEFRAMES IndicatorHTF;  //with sinput,bool,string,etc
   if(Period()==PERIOD_M1){resolution=PERIOD_M5;}
}

1 Ответ

1 голос
/ 22 мая 2019

Исправлена ​​проблема, это была просто проблема размещения. Установив

if(Period()==PERIOD_M1){IndicatorHTF=PERIOD_M5;}  

на самом деле в моей торговой логике, которая использовала IndicatorHTF, она могла правильно читать и устанавливать значения:)

...