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

 
0x est exactement le nombre à 16 chiffres.
 
Bonjour ! La condition ne fonctionne pas
bool CCInapravlenie=false;
if( CCI_50S>100&&CCI_50<100 ||CCI_50S>0&&CCI_50<0|| CCI_50S>-100&&CCI_50<-100 )CCInapravlenie=true;

if(CCInapravlenie){ imja = DoubleToStr(Time[0], 0); 
ObjectCreate(imja, 22, 0, iTime(NULL,0,0),iLow(NULL,0,0)-0.0001);ObjectSet(imja, OBJPROP_ARROWCODE, 241);
ObjectSet(imja, OBJPROP_COLOR , Yellow); // стрелка жолтая 
}//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

J'ai déjà regardé la chaîne ife, je l'ai regardée, je l'ai regardée, je l'ai regardée, je l'ai regardée..... Il doit y avoir une raison, je peux être confus et ne pas voir quelque chose de simple et élémentaire, cela arrive.

J'ai regardé dans la matinée. Je suis sorti. Je suis revenu et j'ai regardé à nouveau. C'est plus facile maintenant, si, plus, moins... Je ne comprends pas du tout.



Et ça, c'est sous mon départ.
double EMA_10 = iMA( NULL, 0, 10, 0, MODE_EMA, PRICE_CLOSE, 0);
double EMA_20 = iMA( NULL , 0, 20, 0, MODE_EMA, PRICE_CLOSE, 0);
double LMA_100 =iMA( NULL , 0, 100, 0, MODE_LWMA, PRICE_CLOSE, 0);
double МА_30 = iMA( NULL , 0, 30, 0, MODE_SMA, PRICE_CLOSE, 0);
double CCI_50 = iCCI( NULL, 0, 50, PRICE_CLOSE, 0);

double EMA_10S = iMA( NULL, 0, 10, 0, MODE_EMA, PRICE_CLOSE, 1);
double EMA_20S = iMA( NULL , 0, 20, 0, MODE_EMA, PRICE_CLOSE, 1);
double LMA_100S =iMA( NULL , 0, 100, 0, MODE_LWMA, PRICE_CLOSE, 1);
double МА_30S = iMA( NULL , 0, 30, 0, MODE_SMA, PRICE_CLOSE, 1);
double CCI_50S = iCCI( NULL, 0, 50, PRICE_CLOSE, 1);


p.s. Tout cela fait partie de cette condition de stratégie

L'EMA - période 10 croise de haut en bas l'EMA - période 200, le CCI croise 0.100 ou 100 de haut en bas ; la bougie ferme ou est en dessous de la LMA - période 100.
 
TheXpert:
0x est exactement le nombre à 16 chiffres.

Merci.
 

Pas de flèches jaunes du tout. Le diable sait. Et même si la condition de zirk fonctionne !!!!

L'état de Zirk.

bool napravlenieCCI=false;
 if( CCI_50S<100&&CCI_50>100 ||CCI_50S<0&&CCI_50>0|| CCI_50S<-100&&CCI_50>-100  )napravlenieCCI=true;
  if(napravlenieCCI){  string imja = DoubleToStr(Time[0], 0);
  ObjectCreate(imja, 22, 0, iTime(NULL,0,0),iHigh(NULL,0,0)+0.0004); 
  ObjectSet(imja, OBJPROP_ARROWCODE, 242);
  Print(" ObjectSet242  ", GetLastError());
  ObjectSet(imja, OBJPROP_COLOR , Red);Print(" сOBJPROP_COLO  ", GetLastError());}

Capture d'écran

 
TarasBY:

Vous ne remplissez pas le 0ème indice des tableaux d'indicateurs,

vous y faites référence :

Elle est un peu de travers (structurellement), mais elle fera l'affaire pour la première fois. Mon conseil : "Habituez-vous tout de suite à des approches correctes pour écrire du code. Par exemple, utilisez cette condition dans votre code :

C'est de l'analphabétisme, car tôt ou tard, vous laisserez le testeur au trading en ligne et plusieurs EAs peuvent fonctionner en parallèle et ce code ne fonctionnera pas.


Merci pour votre réponse !

Je le saurai. Tu devrais étudier davantage les tableaux.

J'ai écrit la condition "Total==0" juste pour vérifier rapidement mon idée en pratique. Je vais maintenant consulter la base de code et essayer de trouver quelque chose de similaire pour résoudre ce problème.

Je suis absolument d'accord avec vous. Vous devez apprendre à écrire du code correctement. Je vais me corriger.

Merci beaucoup pour votre aide.



 
Vinin:

Qu'est-ce qui ne vous plaît pas dans iHighest() et iLowest()?


Je ne connaissais pas ces fonctions. Je vais les essayer maintenant.

Merci pour l'information !

 
TheXpert:
0x est exactement le nombre à 16 chiffres.

L'hexadécimal fait référence aux deux. Par exemple, 0x0000 en C, 0000H en assembleur.
 

Bonjour.

Pouvez-vous me dire comment je peux ajouter les informations que je reçois au dossier ? C'est-à-dire que si je reçois un nombre, il doit être écrit dans le fichier - à la fin du fichier sans effacer tout son contenu.

Il semble que FileWriteString mais pour une raison quelconque est écrit dans le vide au lieu de ce qui est là ... quelqu'un peut-il me donner un exemple de la façon de le faire correctement ?

... De plus, l'enregistrement est fait, s'il est fait, dans un codage incompréhensible et illisible -((

Merci.

 
TarasBY:

Vous ne remplissez pas le 0ème index des tableaux d'indicateurs,

vous y faites référence :

Elle est un peu de travers (structurellement), mais elle fera l'affaire pour la première fois. Mon conseil : "Habituez-vous tout de suite à des approches correctes pour écrire du code. Par exemple, utilisez cette condition dans votre code :

Parce que tôt ou tard, vous quitterez le Strategy Tester et passerez au trading en ligne, où plusieurs EAs fonctionnent en parallèle et ce code ne fonctionnera pas.


D'après ce que je comprends, je dois le refaire de cette façon :

double L_1= iCustom(NULL,0,"Go_go",K,0,1);  //Линия минимума
double L_2= iCustom(NULL,0,"Go_go",K,1,1);  //Линия максимума 

Même problème à nouveau. Lorsque je lance le conseiller expert, il ouvre immédiatement un ordre de VENTE.

Pouvez-vous expliquer pourquoi ?

 
Pacman:


D'après ce que j'ai compris, je dois le refaire comme ceci :

Même problème à nouveau. Lorsque je lance le conseiller expert, il ouvre immédiatement un ordre de VENTE.

Pouvez-vous expliquer pourquoi ?

Remplacer :

  double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
  double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

A :

  double L_1= Low[iLowest (NULL, 0, MODE_LOW, K, 1)];;    //Значение минимума
  double L_2= High[iHighest (NULL, 0, MODE_HIGH, K, 1)];;  //Значение максимума 

Et pourquoi un ordre de VENTE s'ouvre (dans votre version) (sur la base de ce que j'ai dit précédemment), trouvez la réponse vous-même ! !!