Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 178

 
tara:

Не знаю, что товарищи скажут, а по мне - все нормально. Стрелки рисует, а объектов нет.
По мне так тоже. Стрелки могут отрисоваться как часть индикаторного буфера, а объекты создаются через ObjectCreate()
 
pu6ka:
По мне так тоже. Стрелки могут отрисоваться как часть индикаторного буфера, а объекты создаются через ObjectCreate()


Не стану спорить.
 
tara:

Не знаю, что товарищи скажут, а по мне - все нормально. Стрелки рисует, а объектов нет.

понял, что спросил глупость, тогда так, как индикатор рисует стрелки через буферы, и как интерпретировать их в торговые сигналы?
 

bistreevseh:

понял, что спросил глупость, тогда так, как индикатор рисует стрелки через буферы, и как интерпретировать их в торговые сигналы?
скорее всего когда нет сигнала значение индикаторного буффера EMPTY_VALUE

как словить сигнал - здесь описанны идеи и реализация


 
bool Stochastic () {
double Sig_Buy = zoneBUY; 
double Sig_Sell = zoneSELL;
bool Exit_UrBuy = TRUE;
bool Exit_UrSell = TRUE;
double sM0,sM1,sS0, sS1;
bool Bar_BuyCross = FALSE;
bool Bar_SellCross = FALSE;
int bar_b, bar_s;


   sM0  = iStochastic(NULL,timeframe,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_MAIN,1);
   sM1  = iStochastic(NULL,timeframe,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_MAIN,2);
   sS0 = iStochastic(NULL,timeframe,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_SIGNAL,1);
   sS0 = iStochastic(NULL,timeframe,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_SIGNAL,2);


bool CrossBuy = (sS0<Sig_Buy && sM0<Sig_Buy && sM1<sS1 && sM0>=sS0);
bool CrossSell = (sS0>Sig_Sell && sM0>Sig_Sell && sM1>sS1 && sM0<=sS0);

if (UseExitUr) {
if (sM0 >Sig_Buy && sM1 <= Sig_Buy) Exit_UrBuy = TRUE;
else Exit_UrBuy = FALSE;
if (sM0 <Sig_Sell && sM1 >= Sig_Sell) Exit_UrSell = TRUE;
else Exit_UrSell = FALSE;
}

if (CrossBuy) { TimeCrossB =  iOpen( NULL, 0, 1); }

  for (int cnt = 1 ; cnt < Finder ; cnt++) {
bar_b = iBarShift(NULL, 0, TimeCrossB, cnt); 
if (bar_b > 0) Bar_BuyCross = TRUE; 
}

if (Bar_BuyCross && Exit_UrBuy) {
     Li_24 = TRUE;
     TimeCrossB = -1;
 }

if (CrossSell) {TimeCrossS = iOpen( NULL, 0, 1);}

for (int cnm = 1 ; cnm < Finder ; cnm++) {
bar_s = iBarShift(NULL, 0, TimeCrossS, cnm); 
if (bar_s > 0) Bar_SellCross = TRUE; 
}


if (Bar_SellCross && Exit_UrSell) {
    TimeCrossS = -1;
    Li_28 = TRUE;
   }

   return(false);
}

Уважаемые профи помогите реализовать идею. Хочу поймать сигнал от стоха при выходе из границ перекупленности (перепроданности) при условии пересечения его линий в этих зонах. Еще ввел условие - чтобы это пересечение было не дальше параметра определенного количества баров - параметр Finder. Но реализовать никак не могу. Гляньте кто-нить свежим взором где тут ошибки.

зы: Параметры:

Li_28 = TRUE; и Li_24 = TRUE; 

сова считывает как добро на открытие ордеров

 
dr.Vasgenich:

Гляньте кто-нить свежим взором где тут ошибки.

Извините я не проффи, но код данного размера без единного коментария

1) удлиняет время для разбора и поиска ошибки;

2) отбивает саму охоту разбора и поиска ошибки.

 

Друзья, понимаю что для многих это будет банально и просто но не могли бы вы помочь мне с написанием советника в котором будет появляться звуковой сигнал когда МАКД гистограмма будет пересекать "0" на Н4 и Д1 . Все .

Возможно уже были такие вопросы, извиняюсь в таком случае . Но код нужен очень очень ...

 
CAYANNE:

Друзья, понимаю что для многих это будет банально и просто но не могли бы вы помочь мне с написанием советника в котором будет появляться звуковой сигнал когда МАКД гистограмма будет пересекать "0" на Н4 и Д1 . Все .

Возможно уже были такие вопросы, извиняюсь в таком случае . Но код нужен очень очень ...


Вам сюда
 

Подскажите, как реализовать запрет установки второго такого же индикатора в окно, если один там уже установлен?

Хотелось бы прямо в коде индикатора, но не знаю, как это сделать.

Единственное, что приходит в голову - сделать проверку в init() индикатора, но init() вызывается уже после установки индикатора...

 

Помогите пожалуйста! пишу:

 OrderClose( OrderTicket(), 0.1, NormalizeDouble(Bid,2), 1 );  
      Alert("Маємо помилку ",GetLastError());

Ошибка 0 а ордер не закрывает! Что не так?