[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 40

 
Lo dico da codificatore che scrive principalmente su richiesta: un paio di decine di righe di codice "extra" (quando capisci cosa ci hai scritto e ne sei sicuro), non è mai ridondante, almeno in termini di affidabilità del sistema nel suo insieme, e rispettivamente minor numero di resi e problemi di comunicazione con il cliente.
 
FAQ:
Lo dico da codificatore, per lo più personalizzato: un paio di decine di righe di codice "extra" (quando si capisce cosa ci si è scritto e si è sicuri di ciò) non è mai ridondante, almeno in termini di affidabilità del sistema nel suo complesso, e di conseguenza meno callback e problemi nel trattare con il cliente.

Capisco. Grazie. Ho già fatto le modifiche.

Ma comunque, è stato interessante per me che si scopra che l'apertura può essere fatta anche con un volume "sciatto"... non proprio come dovrebbe essere, ma il fatto è che...

 
sergeev:

Le FAQ lo dicono bene. Non si può fare affidamento sui "default". Perché mi ricordo che l'errore 131 (lotto sbagliato) veniva spesso fuori, se non si fa una normalizzazione prima di inviare un ordine.
Forse ora gli MMO hanno fatto il loro controllo dei lotti di default sui server quando inviano un ordine per l'esecuzione.

Quindi dovresti sempre fare la tua normalizzazione dei prezzi e dei lotti prima dell'invio.

Questa è una buona regola di codifica per voi, e una garanzia di meno seccature con potenziali problemi in futuro.

Capito, grazie.

"Poiché ricordo che 131 errori (lotto sbagliato) apparivano spesso se non facevo alcuna normalizzazione prima di inviare l'ordine" - ora non è più così.

L'ho controllato io stesso per sbaglio, quando ho "dimenticato" di abilitare la funzione di normalizzazione dei lotti.

 
Roman.:

Capisco. Grazie. Ho già fatto le modifiche.

Ma era comunque interessante per me che è possibile aprire con un volume "sciatto"... non proprio come dovrebbe essere, ma il fatto è che...


Prima dell'introduzione delle cinque cifre, nessuno si è mai chiesto della normalizzazione - tutto funzionava così com'era.
 
Buon pomeriggio a tutti!
La domanda è la seguente, la prima volta che l'indicatore viene avviato viene visualizzato
da alphabra-cadabra (fig.1). Dopo un ulteriore scorrimento sulla storia tutto è normale (fig.2).

Puoi dirmi qual è il problema? Qui sotto se avete bisogno del codice.

#property indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Tomato
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property indicator_level1 0
#property indicator_levelcolor Gray
#property indicator_levelstyle 2

extern int Period_MA = 5;
extern int MA_Line1 = 13;
extern int MA_Line2 = 34;
 
double Brs[],BrsMA1[],BrsMA2[],MathArr[],MathArr1;
int i=0,j=0;
double hvostUp,hvostDn,rast,S;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,Brs);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(1,BrsMA1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,BrsMA2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexLabel(0,"Bars_");
   SetIndexLabel(1,"Bars_MA1");
   SetIndexLabel(2,"Bars_MA2");
     
   ArrayResize(MathArr,Period_MA);
   
 //---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Bars_MA");

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start() {  

int ncount=IndicatorCounted();
int limit=Bars-ncount-1;

for (int i=0; i<limit; i++)
{

if (High[i+2]>High[i+1] && Low[i+2]>Low[i+1])
{
hvostUp=(High[i+2]-High[i+1])/Point;
hvostDn=(Low[i+2]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+1])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]<High[i+1] && Low[i+2]<Low[i+1])
{
hvostUp=(MathAbs(High[i+2]-High[i+1]))/Point;
hvostDn=(MathAbs(Low[i+2]-Low[i+1]))/Point;
rast=(High[i+1]-Low[i+2])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]>=High[i+1] && Low[i+2]<=Low[i+1])
{
S=(High[i+1]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+2])/Point;
}

if (High[i+2]<=High[i+1] && Low[i+2]>=Low[i+1])
{
S=(High[i+2]-Low[i+2])/Point;
rast=(High[i+1]-Low[i+1])/Point;
}

if (High[i+2]<=Low[i+1] || Low[i+2]>=High[i+1])
{
S=0;
rast=1;
}

if(j>=Period_MA-1)j=0;
j++;
 MathArr[j]=(S/rast*100);
 
Brs[i]=iMAOnArray(MathArr,0,Period_MA,0,0,0);
BrsMA1[i]=iMAOnArray(Brs,0,MA_Line1,0,0,0);
BrsMA2[i]=iMAOnArray(Brs,0,MA_Line2,0,0,0);
}   
  return(0);
}

Fig.1

Fig. 2

File:
bars_ma_1.mq4  4 kb
 
Sarebbe bello automatizzare questo processo, cioè fare questo lavoro in anticipo invece di aspettare che il profitto si inneschi. ho cercato tra tutti gli script postati, ne ho trovato uno simile, ma dicono che non funziona. Oppure facciamo una funzione che quando scatta un TP o uno SL, lo script apre tutti gli ordini appena chiusi, solo in forma pendente. Molti trader sanno cosa faranno in una certa situazione ed è molto conveniente farlo prima che la situazione accada.
 
sting-igor:
Sarebbe bello automatizzare questo processo, cioè fare questo lavoro in anticipo invece di aspettare che il profitto si inneschi. ho cercato tra tutti gli script postati, ne ho trovato uno simile, ma dicono che non funziona. Oppure facciamo una funzione che quando scatta un TP o uno SL, lo script apre tutti gli ordini appena chiusi, solo in forma pendente. Molti trader sanno cosa faranno in una certa situazione ed è molto conveniente farlo prima che la situazione accada.

Sei nel posto giusto :Lavoro
 
Fox_RM:
Buon pomeriggio a tutti!
La domanda è la seguente, la prima volta che l'indicatore viene avviato viene visualizzato
da alphabra-cadabra (fig.1). Dopo un ulteriore scorrimento sulla storia tutto è normale (fig.2).

Puoi dirmi qual è il problema? Qui sotto se avete bisogno del codice.

Fig.1

Fig. 2


Mi dispiace che la domanda sia stata posta una seconda volta.

Confronta la tua variante con questa

Ancora non funziona correttamente, ma è meglio

Modificato di nuovo l'indicatore

File:
 
FAQ:

Si va da questa parte:Lavoro
Nessuno ne ha uno?
 
sting-igor:
Nessuno ne ha uno?


DigCode Base

Se non riesci a trovarne uno, allora ordinalo.

Motivazione: