Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 80
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Nel tester su un simbolo diverso? O in demo/reale su un simbolo diverso? O nel tester di questo simbolo? O su demo/reale su questo simbolo?
Perché devi tirare fuori tutto da te?
Scusate, sono molto nerd - non lo capisco proprio.
Forse avete l'indicatore più semplice con un codice di alcuni, ho un'analogia per capire? Perché non sono riuscito a trovarne uno.
Ho un codice molto semplice che mette dei punti al centro della barra. Come faccio a far apparire il testo quando ci passo sopra, o un riquadro, qualsiasi cosa.
#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);
}
Dove vuoi arrivare? Che differenza fa dove l'hai provato? La domanda è se Punto = 0. E se può, come dovrei scrivere il codice corretto in modo da non incontrare un errore: divisione per zero?
Fai come vuoi.
Non ho letto tutto il dialogo, ma sospetto un problema con la stampa della quinta cifra decimale.
No, divide per Point() e ottiene la divisione per zero.
Non ho letto tutto il dialogo, ma sospetto un problema con la stampa della quinta cifra decimale.
Potrebbe essere questo il problema?
Prova
Salve.
Per favore, aiutatemi.
Ora il lotto di ogni ordine seguente sta aumentando in 1, 2, 3, 4, 5...
Voglio aumentare il lotto non per ordine, ma a passi di 3, quindi 1, 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;
}
}