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

 

Buon pomeriggio. Torniamo alla mia domanda. La transazione inversa non funziona. Ho cercato nel sito ma non ho trovato nulla su questo argomento. Potete consigliarmi cosa sto sbagliando (sto ancora imparando la lingua). Si richiede che sia attivato su una singola candela.

extern double TP = 70; //takeprofit
extern double SL = 0; //stoploss
extern double Lot = 0.1;

double HighLevel;
double LowLevel;
int resBuy=0;
int resSell=0;


//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
HighLevel=High[1];
LowLevel=Low[1];
return;
}

//+------------------------------------------------------------------+
//| funzione esperto |
//+------------------------------------------------------------------+

void start()
{

if(Bars<100 && IsTradeAllowed()==false) return;


if(resBuy==0 && resSell==0 && CheckBreak()==-1)
{
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red);
HighLevel=LowLevel;
LowLevel=Close[1];
return;
}

if(resBuy==0 && resSell==0 && CheckBreak()==1)
{
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue);
LowLevel=HighLevel;
HighLevel=Close[1];
return;
}

if(resBuy!=0 && resSell==0 && Close[1]<LowLevel) //------------------------------------- interessato a questa parte: chiusura e apertura su una barra
{
bool closeBuy=OrderClose(resBuy, Lot, Bid, 2, Blue);
// while(!IsTradeAllowed()) Sleep(100);
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red);
HighLevel=LowLevel;
LowLevel=Close[1];
return;
}

if(resSell!=0 && resBuy==0 && Close[1]>HighLevel) //------------------------------------- interessato a questa parte: chiusura e apertura su una barra
{
bool closeSell=OrderClose(resSell, Lot, Ask, 0.0002, Red);
// while(!IsTradeAllowed()) Sleep(100);
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue);
LowLevel=HighLevel;
HighLevel=Close[1];
return;
}

}

//----------------------------------------------------------------- Check Low&High break (Func)

double CheckBreak()
{
double candle=Open[1]-Close[1];

if(candle>0 && Low[1]<LowLevel) return(-1);
if(candle<0 && High[1]>HighLevel) return(1);
}


 
Buona giornata a tutti,

C'è un problema con gli array:

Supponiamo

int start (){ // Funzione start

int OrdSen_1=OrderSend(Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point); // Ordine di acquisto
if(OrdSen_1==-1){ Alert("OrdSen_1 ",GetLastError());} // Controllo di un errore quando si piazza un ordine

double mas1[]={}; // Array
}

La domanda è come mettere i valori "Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point" che appartengono a OrdSen_1 nell'array mas1[]={}, in modo che possano essere ulteriormente usati, presi dall'array o equiparare questi valori a variabili per il loro ulteriore uso. Ci possono essere più ordini di questo tipo, così come gli array. L'importante è capire il principio.

MOLTO grato per aiuti e spiegazioni, preferibilmente in dettaglio :)
 
Techno:

Outside sarà cancellato perché non lo usate, cioè non lo chiamate da nessuna parte, è chiaro ora?

Capito, grazie :)
 
artmedia70:

Cosa ne pensi di questo campione? :)))))

Con il wifi, va bene.
 

Saluti. Come può l'editor tenere traccia di tutti i posti nel codice in cui viene usata la stessa variabile o funzione?

 
Galion:

Saluti. Come può l'editor tenere traccia di tutti i posti nel codice in cui viene usata la stessa variabile o funzione?


Io uso Notepad++ per questo. Tutto quello che dovete fare è evidenziare una variabile una volta, in modo che sia evidenziata in tutto il vostro codice.

 
Ma perché Notepad++ evidenzi la sintassi, è necessario sintonizzarlo sul linguaggio MQL4. Digita Notepad++ nella ricerca di questo forum e troverai un link a un editor già configurato - l'ho postato qui più di una volta.
 
drknn:
Ma perché Notepad++ evidenzi la sintassi, è necessario sintonizzarlo sul linguaggio MQL4. Digita Notepad++ nella ricerca di questo forum e troverai un link a un editor già configurato - l'ho postato qui più di una volta.

Grazie. Installato, si illumina, è più divertente))
 
Galion:

Grazie. Installato, si illumina, è più divertente))

C'è una funzione molto interessante per marcare le variabili trovate. Premi Ctrl+F, inserisci il nome della variabile, seleziona "Segnalibro" e "Segna trovato". Poi premi il pulsante "Trova tutto". Per rimuoverlo, premere il pulsante "Rimuovi tutto".
 
drknn:

C'è una funzione molto interessante per marcare le variabili trovate. Premi Ctrl+F, inserisci un nome di variabile, spunta le caselle "Bookmark" e "Mark found". Poi premi il pulsante "Trova tutto". Per rimuoverlo clicca su "Remove all".

E il doppio clic va allo snippet di codice))) Proprio quello di cui ho bisogno, grazie)
Motivazione: