Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 80
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Dans le testeur sur un autre symbole ? Ou en démo/réel sur un autre symbole ? Ou dans le testeur sur ce symbole ? Ou sur démo/real sur ce symbole ?
Pourquoi faut-il que vous sortiez tout de vous ?
Désolé, je suis très ringard - je ne comprends pas vraiment.
Peut-être que vous avez l'indicateur le plus simple avec un code de certains, j'ai une analogie à comprendre ? Parce que je n'en ai pas trouvé.
J'ai un code très simple qui met des points au milieu de la barre. Comment faire pour que le texte apparaisse lorsque je le survole, ou une boîte, peu importe.
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//---- input parameters
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,159);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
//----
for(int i=limit; i>=0; i--)
{
double fabody0 = fabs(Close[i]-Open[i]);
double fabody1 = fabs(Close[i+1]-Open[i+1]);
double fabody2 = fabs(Close[i+2]-Open[i+2]);
double fabody3 = fabs(Close[i+3]-Open[i+3]);
double fabody4 = fabs(Close[i+4]-Open[i+4]);
double fabody5 = fabs(Close[i+5]-Open[i+5]);
double fabody6 = fabs(Close[i+6]-Open[i+6]);
double fabody7 = fabs(Close[i+7]-Open[i+7]);
if((fabody0>fabody1) && (fabody0>fabody2) && (fabody0>fabody3) && (fabody0>fabody4) && (fabody0>fabody5) && (fabody0>fabody6) &&(Volume[i]>Volume[i+1]))
{
if (((Close[i]>Open[i])&&(Low[i]+(High[i]-Low[i])/2>Low[i+1]+(High[i+1]-Low[i+1])*0.9))||((Close[i]<Open[i])&&(Low[i]+(High[i]-Low[i])/2<Low[i+1]+(High[i+1]-Low[i+1])*0.1)))
ExtMapBuffer1[i]=(iHigh(Symbol(),0,i)+iLow(Symbol(),0,i))/2;
}
}
//----
return(0);
}
Où voulez-vous en venir ? Quelle différence cela fait-il de savoir où vous l'avez essayé ? La question est de savoir si Point = 0. Et si c'est le cas, comment dois-je écrire un code correct pour ne pas rencontrer une erreur : la division par zéro?
Faites comme vous voulez.
Je n'ai pas lu tout le dialogue, mais je soupçonne un problème d'impression de la cinquième décimale.
Non, il divise par Point() et obtient une division par zéro.
Je n'ai pas lu tout le dialogue, mais je soupçonne un problème d'impression de la cinquième décimale.
Est-ce que ça pourrait être le problème ?
Essayez
Bonjour.
Aidez-moi, s'il vous plaît.
Maintenant le lot de chaque ordre suivant augmente en 1, 2, 3, 4, 5...
Je veux que le lot de chaque commande augmente non pas à chaque commande, mais par tranches de 3, donc 1, 1, 1, 1, 2, 2, 2, 3, 3, 3...
extern double Plus_LotStop = 0.01;
extern double Plus_N_ORD = 3; //каждые N ордеров
void OnTick()
{
//---
for (int i=1; i<=OrdersStop; i++)
{
if((Close[1]<Open[1]&&Close[2]>Open[2]&&NumberOfPositions(Symbol(), -1,_Magic)<1))
{
OPENORDER (OP_BUYSTOP,PriceBS,LOTs,_Magic,i);
numB++;
PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
OPENORDER (OP_SELLSTOP,PriceSS,LOTs,_Magic,i);
numS++;
PriceSS = NormalizeDouble(PriceSS-Step_Stop*Point,Digits);
}
LOTs=LOTs+Plus_LotStop;
}
}