[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 10

 

УУХ наконец то освободился.....

Здравствуйте granit77. В предыдущих постах мы с вами разбирали условие торговой функции для CCI. Вот что у меня получилось.....

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
//объявляем переменную cci_0 и присваиваем ей значение индикатора CCI на нулевом (текущем) баре
double cci_0=iCCI(NULL,0,CCIperiod,CCIprice,0);
//объявляем переменную cci_1 и присваиваем ей значение индикатора CCI на первом (предыдущем) баре
double cci_1=iCCI(NULL,0,CCIperiod,CCIprice,1);
//если значение индикатора CCI на нулевом (текущем) баре уже меньше уровня 100
//а предыдущее его значение (на первом баре) было больше уровня 100
//значит произошло пересечение, и мы даем сигнал на продажу
if(cci_0<100 && cci_1>100) SignalSell=true;
     if(CheckOrders(OP_SELL))
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(cci_0>100 && cci_1<100) SignalBUY=true;
     if(CheckOrders(OP_BUY))
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
 
//----
   return(0);
  }

Я всё правильно сделал? Или опять, по неопытности, чего напутал.......

В этом месте double cci_1............. cci обязательно писать с маленькой буквы????????

 
igrok2008 >>:

Я всё правильно сделал?

Вроде да...

В этом месте double cci_1............. cci обязательно писать с маленькой буквы????????

Нет, можно называть вообще как угодно.

Просто есть несколько общепринятых соглашений об именовании и вообще стилях кода.

По одному из них имена локальных переменных пишутся с маленькой буквы.

 
TheXpert >>:

Вроде да...

Нет, можно называть вообще как угодно.

Просто есть несколько общепринятых соглашений об именовании и вообще стилях кода.

По одному из них имена локальных переменных пишутся с маленькой буквы.

ОКЮШКИ я понял......

 
Я недавно на Форексе . Прорабатываю идейки различные .Хотел бы както механизировать процессы.

Вот напрмиер что я делаю в ручную .Ставлю например SELLSTOP ( c стоплосом и тэйкппрофитом), ПОСЛЕ срабатывания ставлю BUYSTOP на уровне лоса сработавшего (то есть стоп-разворот)

Проблема в том что мне надо сидеть и ждать как закроется SELLSTOP .Если с прибылью отменяю второй ордер . Как бы это механизировать .

Если первый ордер BUYSTOP все тоже самое только наооборот .

Спасибо .

 
Очень интересно узнать для саморазвития кто из профи если не секрет какие методы использует для фильтрования тренда от канального импульсного движения (тоесть тренд нафиг не нужен, его отфильтровываем если он есть (в советнике), а если нет то самая тема, тоесть советник не работает когда есть тренд)
 
Dimoncheg писал(а) >>
Очень интересно узнать для саморазвития кто из профи если не секрет какие методы использует для фильтрования тренда от канального импульсного движения (тоесть тренд нафиг не нужен, его отфильтровываем если он есть (в советнике), а если нет то самая тема, тоесть советник не работает когда есть тренд)

Можно использовать индикатор Damiani_Volt.

 

Здравствуйте.

Вначале этой страницы, я выложил свой кусок кода (отредактированный с помощью granit77, спасибо ему). Проверку его осуществлял TheXpert, спасибо и ему.

НО.... ВОПРОС в том, в торговом условии разве не нужно указывать (для CCI) -100???????????? Указано +100, а ведь сам индикатор имеет значение и -100 и -150

и даже доходит до -180??????

Теперь следующее.... Если рассматривать логику написания торгового условия для CCI, то у меня получилось для RSI и WPR следующее....

int start()
  {
//----
double rsi_0=iRSI(NULL,0,RSIperiod,RSIprice,0);
double rsi_1=iRSI(NULL,0,RSIperiod,RSIprice,1);

if(rsi_0<100 && rsi_1>100) SignalSell=true;
     if(CheckOrders(OP_SELL))
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(rsi_0>100 && rsi_1<100) SignalBUY=true;
     if(CheckOrders(OP_BUY))
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
 
//----
   return(0);
  }
 
Прошу прощения для RSI значения 70 и 30. А для WRP следущее...
int start()
  {
//----
double wpr_0=iWPR(NULL,0,WPRperiod,0);
double wpr_1=iWPR(NULL,0,WPRperiod,1);

if(wpr_0<-80 && wpr_1>-80) SignalSell=true;
     if(CheckOrders(OP_SELL))
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(wpr_0>-20 && wpr_1<-20) SignalBUY=true;
     if(CheckOrders(OP_BUY))
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
 
//----
   return(0);
  }
Правильно ли я указал значения для CCI RSI и WRP???????
 
igrok2008 >>:

Почему для рси уровнем вы взяли 100 ?

 
satop >>:

Почему для рси уровнем вы взяли 100 ?

В посте который выше, я исправился. Уровни 30 70, для WPR 20 и 80

Причина обращения: