[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 231

 
PapaYozh:


ноль эмоций =( все также ничего не заключает =(
 
CLAIN:

ноль эмоций =( все также ничего не заключает =(


Возникает нехорошее ощущение, как-будто я Вам что-то должен.

Проанализируйте Ваш CheckTicket(), что он Вам помещает в ticket?

И вообще, пользуйтесь функцией Print(...) и анализируйте журнал.

 
CLAIN:

ноль эмоций =( все также ничего не заключает =(

Не знаю Вашей логики, вкладываемой в функцию. На всякий случай, предлагаю проверить, этого ли Вы хотите.

Правильно ли вы применяете iMACD и не нужна ли Вам еще и Сигнальная линия?

 
PapaYozh:


Возникает нехорошее ощущение, как-будто я Вам что-то должен.

Проанализируйте Ваш CheckTicket(), что он Вам помещает в ticket?

И вообще, пользуйтесь функцией Print(...) и анализируйте журнал.


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

думаю, checkticket тут ни при чем, так как если я просто signal_MACD меняю на true, то сделки отлично заключаются, а круг поисков сужается только до размеров функции:

 bool signal_MACD() 
  { 
    bool signal_MACD = false; 
    double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); 
    for(int i=1;i<=5;i++) 
    { 
       if(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0)*tmp,4)<0.0) 
       { 
          signal_MACD = true; 
          break; 
       }        
    } 
    return(signal_MACD);
  } 

где-то тут она не хочет принимать значение true......... я просто не очень хорошо уработаю с циклом for, вот и не щзнаю, куда тут return вставить

 
CLAIN:

думаю, checkticket тут ни при чем, так как если я просто signal_MACD меняю на true, то сделки отлично заключаются, а круг поисков сужается только до размеров функции:

где-то тут она не хочет принимать значение true......... я просто не очень хорошо уработаю с циклом for, вот и не щзнаю, куда тут return вставить

А в чем разница между double tmp и NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0)?

Перемножение их всегда будет больше нуля.

Я так думаю))

(-) * (-) = +

(+) * (+) = +

 

логика у меня очень простая... если индикатор MACD находится по одну сторону от 0 не больше 5 минут, то заключаем сделку.... вот и все...

кстати, если

bool signal_MACD() 
  { 
    bool signal_MACD = true; 
    double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); 
    for(int i=1;i<=5;i++) 
    { 
       if(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0)*tmp,4)<0.0) 
       { 
          signal_MACD = true; 
          break; 
       }        
    } 
    return(signal_MACD);
  } 

... в 3й строчке false поменять на true, то сделки будут заключаться постоянно, значит логику со сделками и код я написал правильно, а дело остается только за цмклом for и return

давайте добьем ее плз

 
DhP:

А в чем разница между double tmp и NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0)?

Перемножение их всегда будет больше нуля.

Я так думаю))

(-) * (-) = +

(+) * (+) = +


будет не всегда больше 0... как раз если на одном из тиков MACD пересек 0, то будет (+)*(-) - что и будет означать пересечение... ну... по моей логике =) не факт, что она верна, конечно )
 
CLAIN:

логика у меня очень простая... если индикатор MACD находится по одну сторону от 0 не больше 5 минут, то заключаем сделку.... вот и все...

кстати, если

... в 3й строчке false поменять на true, то сделки будут заключаться постоянно, значит логику со сделками и код я написал правильно, а дело остается только за цмклом for и return

давайте добьем ее плз


Они будут заключаться постоянно, потому что у функция начнёт всегда возвращать "true"
 
CLAIN:

логика у меня очень простая... если индикатор MACD находится по одну сторону от 0 не больше 5 минут, то заключаем сделку.... вот и все...

кстати, если

... в 3й строчке false поменять на true, то сделки будут заключаться постоянно, значит логику со сделками и код я написал правильно, а дело остается только за цмклом for и return

давайте добьем ее плз

Может, в строчке должно быть (i)? .....

if(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i).

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