[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 231

 
PapaYozh:


zéro émotion =( toujours rien =(
 
CLAIN:

pas d'émotions =( toujours rien =(


Tu as un mauvais pressentiment, comme si je te devais quelque chose.

Analysez votre CheckTicket(), que met-il dans votre ticket ?

Et en général, utilisez la fonction Print(...) et analysez le journal.

 
CLAIN:

zéro émotion =( toujours rien =(

Je ne connais pas votre logique derrière cette fonction. Juste au cas où, je vous suggère de vérifier si c'est ce que vous voulez.

Appliquez-vous correctement l'iMACD et n'avez-vous pas également besoin d'une ligne de signal ?

 
PapaYozh:


Il y a un mauvais sentiment, comme si je te devais quelque chose.

Analysez votre CheckTicket(), que met-il dans votre ticket ?

En général, utilisez la fonction Print(...) et analysez le journal.


Tu ne me dois rien... Je suis désolé si vous vous sentez comme ça... c'est juste que j'ai eu tellement de problèmes avec elle déjà...............
 

Je pense que le checkticket n'a rien à voir avec cela, parce que si je change simplement signal_MACD en true, les trades se ferment bien, et la recherche est réduite uniquement à la taille de la fonction :

 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);
  } 

quelque part par ici, il ne veut pas prendre true......... Je ne travaille pas bien avec la boucle for, donc je ne sais pas où mettre le retour ici.

 
CLAIN:

Je pense que le checkticket n'a rien à voir avec cela, parce que si je change simplement signal_MACD en true, les trades se ferment bien, et la recherche est réduite uniquement à la taille de la fonction :

quelque part par ici, il ne veut pas prendre true......... Je ne travaille pas bien avec la boucle for, donc je ne sais pas où mettre le retour ici.

Et quelle est la différence entre le double tmp et NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0)?

En les multipliant, on obtient toujours un résultat supérieur à zéro.

Je pense que oui))

(-) * (-) = +

(+) * (+) = +

 

ma logique est très simple... si l'indicateur MACD se trouve d'un côté de 0 pendant 5 minutes au maximum, alors trade.... c'est tout...

au fait, si

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);
  } 

... dans la 3ème ligne "false" à "true", les transactions seront faites tout le temps, cela signifie que j'ai écrit la bonne logique de transaction et le code, et tout ce qui reste est une clause for et return

Finissons-en, s'il vous plaît.

 
DhP:

Quelle est la différence entre le double tmp etNormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0) ?

En les multipliant, on obtient toujours un résultat supérieur à zéro.

Je pense que oui))

(-) * (-) = +

(+) * (+) = +


ne sera pas toujours supérieure à 0... Juste si le MACD a croisé 0 sur un des ticks, il y aura (+)*(-) - ce qui indiquera un croisement... Eh bien... ma logique =) pas nécessairement correcte, bien sûr ;)
 
CLAIN:

ma logique est très simple... si l'indicateur MACD se trouve d'un côté de 0 pendant 5 minutes au maximum, alors trade.... c'est tout...

Au fait, si

... dans la 3ème ligne "false" à "true", les transactions seront faites tout le temps, cela signifie que j'ai écrit la bonne logique de transaction et le code, et tout ce qui reste est une clause for et return

Finissons-en, s'il vous plaît.


Ils seront conclus tout le temps car la fonction retournera toujours "vrai".
 
CLAIN:

ma logique est très simple... si l'indicateur MACD se trouve d'un côté de 0 pendant 5 minutes au maximum, alors trade.... c'est tout...

Au fait, si

... dans la 3ème ligne "false" à "true", les transactions seront faites tout le temps, cela signifie que j'ai écrit la bonne logique de transaction et le code, et tout ce qui reste est une clause for et return

Finissons-en, s'il vous plaît.

Peut-être qu'il devrait y avoir(i) dans la ligne ? .....

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

Raison: