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?
Qual è il punto? Che differenza fa dove l'hai provato? La domanda è se Punto = 0. E se può, come faccio a scrivere il codice correttamente in modo da non incontrare un errore: divisione per zero?
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_buffers1 #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() { //----
Gevorg Hakobyan: 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.
Quindi controlla il divisore a zero prima di dividere.
Pensavo che foste interessati alla causa, non all'effetto, e alla stampella appropriata.
In generale, questo è ciò di cui avete bisogno, ma il problema è che la descrizione sarà abbastanza grande, e questo metodo può letteralmente scrivere un paio di parole - il resto semplicemente non viene visualizzato
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;
}
}