Скачать MetaTrader 5

нужна помощь с "глупым" вопросом.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Nikolay
19
Nikolay  

Только начал изучение языка. возникла проблемма. МНе нужно рассчитать среднее значение свечи в количестве пунктов за рассчетный период, т.е. H_L[i]=High[i]-Low[i]; где H_L Должен быть массивом, к которому нужно будет потом обращаться в связи с тем, что нужны значения определенных индексов. попробовал написать, при тестировании даже в визуальном режиме он мне H_L с любым индексом приравнивает к 0 :( подскажите пожалуйста, где я ошибся, если можно, то как это правильно переписать.. заранее благодарен за помощь.

// extern int period2 = 10;

double sum=0;
double H_L[];
int i;
for(i=0;i<=period2;i++)
{
H_L[i]=High[i]-Low[i];

sum=sum+H_L[i];
// Alert("H_L[ ",i," ]= ",H_L[i]," High[ ",i," ] = ",High[i]," LOW[ ",i," ] = ", Low[i]);

}

H_Lsr=sum/period2;


Andrey F. Zelinsky
32497
Andrey F. Zelinsky  

переменная period2 типа int

можете почитать здесь https://docs.mql4.com/ru/basis/types/casting

Vladyslav Goshkov
2146
Vladyslav Goshkov  
gelioc:

Только начал изучение языка. возникла проблемма. МНе нужно рассчитать среднее значение свечи в количестве пунктов за рассчетный период, т.е. H_L[i]=High[i]-Low[i]; где H_L Должен быть массивом, к которому нужно будет потом обращаться в связи с тем, что нужны значения определенных индексов. попробовал написать, при тестировании даже в визуальном режиме он мне H_L с любым индексом приравнивает к 0 :( подскажите пожалуйста, где я ошибся, если можно, то как это правильно переписать.. заранее благодарен за помощь.

// extern int period2 = 10;

double sum=0;
double H_L[];
int i;
for(i=0;i<=period2;i++)
{
H_L[i]=High[i]-Low[i];

sum=sum+H_L[i];
// Alert("H_L[ ",i," ]= ",H_L[i]," High[ ",i," ] = ",High[i]," LOW[ ",i," ] = ", Low[i]);

}

H_Lsr=sum/period2;


Под массивы нужно память отводить. Укажите размерность.

Самое правильное решение, ИМХО - начать с изучения документации и учебника - все это и еще масса вопросов, которые у Вас возникнут расписаны достаточно подробно.

KONDOR
358
KONDOR  
gelioc:

// extern int period2 = 10;

double H_L[100]; или ArrayResize(H_L,100); в инит

Nikolay
19
Nikolay  
Спасибо большое всем за помощь. поймался буквально на азбуке :(
Nikolay
19
Nikolay  

нужно реализовать ордера, но я пока не понимаю как это сделать технически. алгоритм таков. заранее благодарен за помощь.

принимается решение об открытии позиции на buy.

перед открытием ордера ведется проверка на открытые ордера. если открытые ордера присутствуют, тогда делается следущее:

*все открытые ордера на sell должны быть закрыты.

*если присутствуют ордера на бай, тогда НОвый ордер НЕ открывается, но при этом проверяется стоп-лоссы этих buy ордеров. Если уровень стоп-лосса, установленного в открытых ордерах меньше, чем полученный при вычислениях tick_SLv, тогда его нужно заменить.

*если же ордеров на buy нет, тогда открывается новый ордер со стопом tick_SLv.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий