Indicateur multi-devises Trade101 - page 4

 
Quelqu'un sait-il comment réduire les éléments à un dénominateur commun et faire comme décrit par l'auteur ? Je sens que je dois creuser dans MarketInfo, mais je ne sais pas quel paramètre.
 
Hmm, j'ai toujours zéro diviseur. C'est un peu un mystère.
 

Division par zéro uniquement lorsque MarketInfo(Pair[j], MODE_POINT)=0.

Cela ne devrait pas arriver... L'historique est-il chargé sur toutes les paires ? Essayez d'ouvrir les 14 paires dans le terminal.

 
C'est peut-être parce que mon CHFJPY n'est qu'en gris. (Il est interdit d'en faire le commerce) Mais les citations vont. Peut-être que l'indicateur ne peut pas tirer le markitonfo de là ? Bien qu'un autre indicateur fonctionne parfaitement avec ce symbole.
 
Si vous le pouvez, écrivez un script pour imprimer cette information sur le marché pour toutes les devises. Ça devrait être clair...
 
Malheureusement, je ne suis pas très bon en programmation. :(
 

Je me demande pourquoi, si vous ne laissez que 2 paires, par exemple Paire[0]="EURUSD" ; Paire[1]="GBPJPY" ;

il ne fonctionne pas ? ??

Qui sait, ne dit rien ; qui dit, ne sait rien. La règle d'or d'un agent de change
 
sergeev писал(а) >>

Je vais demander à nouveau. Vous êtes sûr que le bloc :

b=true;
while ( b) // сортируем массив по возрастанию
{
b=false;
for ( j=1; j< Max; j++)
  if ( Price[ j]< Price[ j-1]) 
  { 
   a= Price[ j]; Price[ j]= Price[ j-1]; Price[ j-1]= a;
   n= Num[ j]; Num[ j]= Num[ j-1]; Num[ j-1]= n; b=true; 
  }
}

Triez-vous correctement le tableau Price[] ?

Ou ai-je manqué une autre boucle quelque part ? ;)

Ou bien il (le bloc) a un autre but ?

 

Je ne sais pas si ça peut aider. Je prends d'abord l'intervalle de temps EURUSD (le plus coté, je pense), par exemple 1 heure. Et puis le reste des symboles sont l'intervalle via iBarShift.

Ensuite, pour chaque symbole, je calcule non pas le mouvement en points, mais les points multipliés par leur prix (à 1,0 lot).

      for(int j=0; j<14; j++)
      {
         int q;
         if(j<7) q=-1; else q=1;
         string sm=smbl[j];
         int ii=iBarShift(sm,PERIOD_M1,timenow);
         int jj=iBarShift(sm,PERIOD_M1,timestart);
         double p;
         if(StringFind(sm,"JPY")>=0) p=0.01; else p=0.0001;
         double sp=MarketInfo(sm,MODE_SPREAD);
         double pp=MarketInfo(Symbol(), MODE_TICKVALUE);
         double mv=((iClose(sm,PERIOD_M1,ii)-iClose(sm,PERIOD_M1,jj))/p*q-sp)*pp;
         smbl_movement[j]=mv;
         if(j<7) sumsell=sumsell+smbl_movement[j];
         else sumbuy=sumbuy+smbl_movement[j];
      }
      GreenBuffer[i]=sumbuy;
      RedBuffer[i]=sumsell;

Et je prends deux tampons - le bénéfice total de sept points à l'achat et de sept points à la vente (symboles vert et rouge dans T101).

Je veux ajouter d'autres tampons - H4 et intervalles quotidiens.

Et en général, messieurs, pour ne pas enterrer le monde entier - qui est intéressé, allez sur le site de Victor (vinin) - il y a eu beaucoup de bavardage et la négociation est allée un peu, peut-être quelque chose sera ajouté.

Et le tri, d'ailleurs, a déjà été effectué (voir Commentaire() )

 
SergNF >> :

Je vais demander à nouveau. Vous êtes sûr que le bloc :

Triez-vous correctement le tableau Price[] ?

Ou ai-je manqué une autre boucle quelque part ? ;)

Ou bien il (le bloc) a un autre but ?

Oui, c'est vrai.

Y a-t-il une erreur que je ne vois pas ?