[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 37

 

Ecco tutto ciò che è definito nell'indicatore.

#property indicator_buffers 8 // Numero di buffer
SetIndexBuffer(1,Set_SL); // assegnazione dell'array
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // Stile linea

Non è necessario definire la DIMENSIONE per il buffer dell'indicatore!

 
Buona sera. Per favore consigliatemi - nel mio Expert Advisor, dopo la chiusura con successo di un trade redditizio, una posizione viene riaperta nella stessa direzione del trade precedente (ovviamente, diventa non redditizia in futuro). Come posso proibire la riapertura di queste transazioni errate?
 
xruss >> :
Buona sera. Per favore consigliatemi - nel mio Expert Advisor, dopo aver chiuso con successo un trade redditizio, una posizione viene riaperta nella stessa direzione del trade precedente (ovviamente, diventa non redditizia in futuro). Come posso proibire la riapertura di questi scambi sbagliati?

Rimuovete la condizione sulla quale i vostri trade sono aperti in questo modo, e inserite la condizione come vorreste che fossero aperti.

 
Vinin >> :

E sarebbe una buona idea definire prima la dimensione dell'array.

Ecco tutto ciò che è definito nell'indicatore.

#property indicator_buffers 8 // Numero di buffer
SetIndexBuffer(1,Set_SL); // assegnazione dell'array
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // Stile linea

Non è necessario definire la DIMENSIONE per il buffer dell'indicatore!

 
ikatsko >> :

Non è necessario definire la DIMENSIONE per il buffer dell'indicatore!

Non è necessario. Significa buffer doppio Set_SL[];

 
granit77 >> :

Non è necessario. Significa buffer doppio Set_SL[];

Quindi ho ancora la domanda postata qui il 22.03.2009 16:05 (pagina precedente). Sì, ecco un'aggiunta: era tutto durante il fine settimana, cioè non c'erano TICKS


 
ikatsko писал(а) >>

Quindi ho ancora una domanda.

>> Metti tutto il codice là fuori, vediamo se riusciamo a capirlo.

 
xruss писал(а) >>
Buona sera. Potete per favore dirmi - nel mio Expert Advisor, dopo una chiusura di successo di un trade redditizio, c'è una riapertura di una posizione nella stessa direzione del trade precedente (ovviamente, diventa non redditizio in futuro). Come posso proibire la riapertura di questi scambi sbagliati?

È sufficiente controllare l'ultima transazione chiusa. Ma bisogna provvedere a quando non c'è ancora una storia

 
ikatsko писал(а) >>

Questo è tutto ciò che è definito nell'indicatore.

#property indicator_buffers 8 // Numero di buffer
SetIndexBuffer(1,Set_SL); // assegnazione di un array
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // Stile linea

Non è necessario definire la DIMENSIONE per il buffer dell'indicatore!

Questo non era presente nel codice originale. Se c'è, c'è un'altra ragione. Dovremmo esaminare l'intero codice.

 
Figar0 >> :

Posta l'intero codice, cerchiamo di capirlo

Ho lasciato (per semplicità) solo ciò che costituisce il problema nel codice. Mettiamo l'indicatore e vediamo il problema, per così dire.

//+------------------------------------------------------------------+
//| iK_exp_stat_v30.mq4 |
//| Ivan Katsko |
//| |
//+------------------------------------------------------------------+
#proprietà copyright "Ivan Katsko"
#proprietà link ""

#property indicator_separate_window // Visualizza in una finestra separata
#property indicator_buffers 8 // Numero di buffer
#property indicator_color1 DeepPink // Colore della prima linea
#property indicator_color2 Purple // Colore della seconda linea
#property indicator_color3 Red // Colore della terza linea
#property indicator_color4 LawnGreen // Colore della quarta linea
#property indicator_color5 Gold // Colore della quinta linea
#property indicator_color6 Blue // Colore della sesta linea
#property indicator_color7 SteelBlue // Colore della settima linea
#property indicator_color8 Lime //colore dell'ottava linea

esterno esterno interno
Depth=1; // Profondità della storia: 1 - sul valore della storia.
extern double Level=10; // Livello minimo SL/TP

int Storia; // Numero di barre nella storia calcolata

doppio
Value_TP[]; // Array - valore di Take Profit
Av_Sum_TP[], // Array - importo medio di Take Profit
Sum_na_TP[], // Array - Quantità incrementale di Take Profit
Algoritm[], // Algoritmo: 1 - "oggi è come ieri", -1 - "oggi non è come ieri"
Direction[], // Direzione dell'ordine: 1 - comprare, -1 - vendere
Sum_TP[], // Array - Quantità di Take Profit incrementale adattabile
Set_TP[], // impostare il Take Profit
Set_SL[]; // Imposta lo Stop Loss


//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato
//+------------------------------------------------------------------+
int init()
{
//--------------------------------------------------------------------
SetIndexBuffer(0,Set_TP); // assegnazione dell'array Swap Up
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1); // Stile linea
SetIndexBuffer(1,Set_SL); // Assegna l'oscillazione della matrice verso il basso
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // Stile linea
SetIndexBuffer(2,Sum_TP); // Assegna l'array al buffer
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2); // Stile linea
SetIndexBuffer(3,Direction); // Assegnare un array al buffer
SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,4); // Stile linea
SetIndexBuffer(4,Algoritm); // Assegnare un array al buffer
SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,1); // Stile linea
SetIndexBuffer(5,Value_TP); // Assegnare un array al buffer
SetIndexStyle(5,DRAW_HISTOGRAM,STYLE_SOLID,2); // Stile linea
SetIndexBuffer(6,Sum_na_TP); // Assegnare un array al buffer
SetIndexStyle(6,DRAW_LINE,STYLE_SOLID,2); // Stile linea
SetIndexBuffer(7,Av_Sum_TP); // Assegnare un array al buffer
SetIndexStyle(7,DRAW_HISTOGRAM,STYLE_SOLID,2); // Stile linea

//--------------------------------------------------------------------
switch (Period()) // Imposta il numero di barre da esaminare
{
caso 1: Storia = 30; pausa; // Periodo 1 minuto
caso 5: Storia = 24; pausa; // periodo di 5 minuti
caso 15: Storia = 24; pausa; // periodo di 15 minuti
caso 30: Storia = 24; pausa; // Periodo 30 minuti
caso 60: storia = 24; pausa; // un periodo di un'ora
caso 240: Storia = 30; pausa; // Periodo 4 ore
caso 1440: Storia = 22; pausa; // periodo giornaliero
default: Alert("Selezionare il periodo da M1 a D1."); break; //periodo orario
}
Set_SL[History*Depth]=1.0*Level*Point;
Alert("Init:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//Specialmente visualizzatelo per vedere: mostra (diciamo) 0,0001
//--------------------------------------------------------------------//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di iterazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int start()
{
Alert("Start:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//e questo mostra già 2147483647
ritorno(0);
}


File:
Motivazione: