Questions des débutants MQL5 MT5 MetaTrader 5 - page 962

 
Artyom Trishkin:

Le compilateur ne jure pas, mais avertit que vous essayez de mettre double dans int.


Une belle image sur le sujet - c'est drôle, merci.

 
Alexey Viktorov:

Essayez aussi DRAW_COLOR_CANDLES

Merci, je vais faire un essai.
 
Alexey Viktorov:

Essayez aussi DRAW_COLOR_CANDLES

DRAW_COLOR_CANDLES ne modifie pas la largeur, bien qu'elle soit présente dans la documentation de l'exemple (#property indicator_width1 1). Par conséquent, la superposition d'une bougie sur une autre ne fonctionnera pas.

 
Nauris Zukas:

DRAW_COLOR_CANDLES ne modifie pas la largeur, bien qu'elle soit présente dans la documentation de l'exemple (#property indicator_width1 1). Par conséquent, la superposition d'une bougie sur une autre ne fonctionnera pas.

Vous pouvez calculer la largeur des barres en pixels, et utiliser cette valeur pour déterminer l'épaisseur des histogrammes. En somme, si vous voulez...

 
Alexey Viktorov:

Vous pouvez calculer la largeur des barres en pixels, et utiliser cette valeur pour déterminer l'épaisseur des histogrammes. En somme, si vous voulez...

"...la largeur des barres en pixels..." Je ne comprends pas vraiment comment faire.

 
Nauris Zukas:

"...calculer la largeur des barres en pixels..." Je ne comprends pas vraiment comment faire.

Quoi qu'il en soit, si vous voulez, vous devez vérifier ce que vous obtenez. Je ne l'ai pas testé, faute de raison...

Échelle

Mode de spécification de l'échelle en pixels par barre


Largeur du graphique en pixels /Largeur du graphique en barres Cela peut ne pas fonctionner lorsque le retrait du bord droit du graphique est défini.

 
Alexey Viktorov:

Quoi qu'il en soit, si vous voulez, vous devez vérifier ce que vous obtenez. Je ne l'ai pas testé, faute de raison...

Échelle

Mode d'échelle en pips par barre


Largeur du graphique en pixels /Largeur du graphique en barres Cela peut ne pas fonctionner lorsque le paramètre est défini pour mettre en retrait le bord droit du graphique.

Merci.

 
Aidez-moi, gens de bonne volonté...
J'ai rencontré un tel désordre dans le testeur.
Lorsque vous essayez de mettre un filtre pour entrer sur le marché par niveau de spread. Le testeur l'ignore (propagation).
Mais il ne l'ignore que depuis les 6 derniers mois. 5 (derniers) mois, tests normaux, filtres.
J'ai lu quelque part que les comptes du testeur se répandent à leur manière et qu'il est impossible de les filtrer,
Mais ce qui est déroutant, c'est que depuis 5 mois, il le prend toujours en compte et le traite de manière amicale...
Capture d'écran jointe.
La question est la suivante.
S'agit-il d'une fonctionnalité du testeur ou d'un paramètre que je ne connais pas ?
Ou peut-être cette condition doit-elle être définie comme un logiciel ?

J'ai écrit le filtre pour le tester de cette façon...

void OnTick()
  { 
  double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK); 
  double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
  double spread=ask-bid; 
  
  if (PositionsTotal()>=1) 
  return;
  {
  int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT)); 
  if (spread_points<=5)
  {
  trade.Buy(0.1,_Symbol,ask,bid-300*_Point,bid+300*_Point);
  }
  }
  }

Enfin... c'est comme ça que je l'ai écrit.)

Dossiers :
 
vladzeit:
Aidez-moi, gens de bonne volonté...
J'ai rencontré un tel désordre dans le testeur.
Lorsque vous essayez de mettre un filtre pour entrer sur le marché par niveau de spread. Le testeur l'ignore (propagation).
Mais il ne l'ignore que depuis les 6 derniers mois. Pendant 5 mois le testeur teste normalement, il filtre.
J'ai lu quelque part que le testeur a sa propre façon de calculer l'écart et qu'il est impossible de le filtrer,
Mais ce qui est déroutant, c'est que pendant 5 mois, il en tient toujours compte et le traite de manière amicale...
Capture d'écran jointe.
La question est la suivante.
S'agit-il d'une fonctionnalité du testeur ou d'un paramètre que je ne connais pas ?
Ou peut-être cette condition doit-elle être définie comme un logiciel ?

J'ai écrit le filtre pour le tester de cette façon...

Eh bien... c'est comme ça que je l'ai écrit)

Vous devriez le tester en mode"Every tick based on real ticks" :

//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ask  = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   double bid  = SymbolInfoDouble(Symbol(),SYMBOL_BID);
   long spread = SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);

   if(ask==0.0 || bid==0.0 || spread=0)
      return;

   if(PositionsTotal()>0)
      return;

   if(spread_points<=InpSpread)
     {
      trade.Buy(0.1,Symbol(),ask,ask-300*Point(),ask+300*Point());
     }
  }

InpSpread - paramètre long en entrée.

 
Vladimir Karputov:

Test en mode"Chaque tic basé sur des tics réels" :

InpSpread - paramètre long en entrée.

Merci Vladimir, j'ai réglé l'entrée longue.

input long  InpSpread =5;
spread=0 //поправил, на == это ведь сравнение?
if(spread_points<=InpSpread) // поправил на spread

Tout fonctionne, mais il ne filtre le spread que pour 5 mois. Je respecte"Every tick based on real ticks".

C'est peut-être à cause deMetaQuotes, je vais en essayer d'autres maintenant.

Raison: