B_Dima писал (а): если значение CCI стало больше 100 то открывать позицию на покупку до того момента пока значение не станет меньше -100, а когда станет меньше -100 открывать продажи до момента пока не станет больше 100.
Вам, Дима, я могу предложить такую вот функцию: int CCI_period=14;
int Applied_Price=PRICE_CLOSE;
int GetTradeSignal(string sy="", int tf=0, int nb=0) {
if (sy=="" || sy=="0") sy=Symbol();
double cci0=iCCI(sy, tf, CCI_period, Applied_Price, nb);
double cci1=iCCI(sy, tf, CCI_period, Applied_Price, nb+1);
int bs=0;
if (cci1<=+100 && cci0>+100) bs=+1;
if (cci1>=-100 && cci0<-100) bs=-1;
return(bs);
}
Эта функция возвращает 1, когда нужно покупать и -1, когда нужно продавать. Условия покупки/продажи соответствуют Вашим пожеланиям. Вам теперь нужно всего лишь на каждом тике выполнять следующее:
1. Получать значение функции GetTradeSignal().
2. Если полученное значение ==0, то ничего не делать.
3. Если полученное значение >0, то закрывать все продажи и покупать.
4. Если полученное значение <0, то закрывать все покупки и продавать. |