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
Pensavo di aver risolto il problema, ma non è così.
Quello che sto cercando di fare è avere un commento sul grafico e nel diario che indichi quale condizione di entrata è stata usata per aprire la posizione corrente.
Questo è stato fatto prima e come si fa, perché ci sto provando da un po' ma senza fortuna e non è così facile come pensavo.
Di seguito il mio ultimo tentativo.
qualsiasi aiuto sarebbe grande
buysig = Long || Long2 || Long3 || Long4;
sellsig = Short || Short2 || Short3 || Short4;
closebuy=sellsig;
closesell=buysig;
se (curprof>=AccountEquity()*ProfitExit/100.0) {
exit=true;
}
if (last>0 && (Time[0]-last)/(Period()*60)>=CancelOrderBars) {
remorder=true;
}
}
void CheckForOpen() {
int res,tr;
//---- condizioni di vendita
co=CalculateCurrentOrders(Symbol());
if(sellsig && lastsig!=-1) {
if ( Short == true)Print(" Segnale short preso ");
if ( Short2 == true)Print(" Segnale Short2 preso ");
if ( Short3 == true)Print(" Segnale Short3 preso ");
if ( Short4 == true)Print(" Segnale Short4 preso ");
co=CalculateCurrentOrders(Symbol());
se (co==0) {
res = OpenStop(OP_SELLSTOP,LotsRisk(StopLoss), Low[shift]-OrderPipsDiff*Point, StopLoss, TakeProfit1);
}
lastsig=-1;
last=Time[0];
ritorno;
}
//---- condizioni di acquisto
co=CalculateCurrentOrders(Symbol());
if(buysig && lastsig!=1) {
if ( Long == true) Print(" Segnale Long preso ");
if ( Long2 == true)Print(" Segnale Long2 preso ");
if ( Long3 == true) Print(" Segnale Long3 preso ");
if ( Long4 == true)Print(" Segnale Long4 preso ");
co=CalculateCurrentOrders(Symbol());
se (co==0) {
res = OpenStop(OP_BUYSTOP,LotsRisk(StopLoss), High[shift]+OrderPipsDiff*Point, StopLoss, TakeProfit1);
}
last=Time[0];
lastsig=1;
ritorno;
}
}
bool CloseAtMarket(int ticket,double lot) {
//chiusura dell'ordine a mercato tollerante ai guasti
bool bres=false; int tr;
tries=0;
while (!bres && tries<OrderTriesNumber) {
RefreshRates();
bres=OrderClose(ticket,lot,OrderClosePrice(),slippage,White);
tries++;
tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(2000); }
}
if (!bres) Print("Errore nella chiusura dell'ordine: ",ErrorDescription(GetLastError());
}
int OpenStop(int mode,double lot, double prc, int SL, int TP) {
int res,tr,col;
stringa mail;
double openprice,sl,tp,stlev;
tries=0;
stlev=(1+MarketInfo(Symbol(),MODE_STOPLEVEL))*Point;
while (res<=0 && tries<OrderTriesNumber) {
tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(2000); }
RefreshRates();
se (mode==OP_SELLSTOP) {
if (prc<=Bid-stlev) openprice=prc;
altrimenti openprice=Bid-stlev;
se (SL>0) sl=openprice+SL*Point;
se (TP>0) tp=openprice-TP*Point;col=Rosso;
} else
se (mode==OP_BUYSTOP) {
se (prc>=Ask+stlev) openprice=prc;
altrimenti openprice=Ask+stlev;
se (SL>0) sl=openprice-SL*Point;
se (TP>0) tp=openprice+TP*Point;col=Blu;
} else return;
Print(Ask," ",Bid," ",Symbol()," ",mode," ",lot," ",openprice," ",sl," ",tp," ");
res=OrderSend(Symbol(),mode,lot,openprice,slippage,sl,tp,EAName+"_"+ MagicNumber, MagicNumber,0,col);
try++;
}
if (res<=0) Print("Errore nell'apertura dell'ordine pendente: ",ErrorDescription(GetLastError());
return(res);
Questo EA non si compila nemmeno, lo stoploss dovrebbe essere l'ultima delle tue preoccupazioni. Ci sono 5 variabili che hanno spazi casuali o la prima lettera non è maiuscola!
Questo EA non si compila nemmeno, lo stoploss dovrebbe essere l'ultima delle vostre preoccupazioni. Ci sono 5 variabili che hanno spazi casuali o la prima lettera non è maiuscola!
Qui la versione corretta.
Ma questo ancora non può aprire alcuna posizione perché non c'è una logica nel codice per decidere come aprire posizioni lunghe / corte.
Aiuto con questo EA
Chi è questo CHinGsMAroonCLK?
Come ricordo, questo EA non è altro che 10p3 di elCactus, ma forse mi sbaglio...
Controlla il suo thread, probabilmente troverai quello che stai cercando: https://www.mql5.com/en/forum/174975Ok... quindi ora il problema è che non riesco a mettere uno stoploss per questo EA... qual è il codice? mi può aiutare? thanx
nessuna zona di trading - aiuto codice
Ciao a tutti,
Sto cercando di modificare un codice ma dopo molti sforzi non sono ancora riuscito a farlo bene... se a qualcuno di voi non dispiace, potete dare un'occhiata a questo... grazie...
L'idea è quella di fermare il prossimo commercio se l'intervallo di prezzo è nella stessa zona come il commercio precedente. Il commercio lungo controllerà la zona per l'ultima POSIZIONE APERTA commercio lungo, e il commercio breve controllerà la zona per l'ultima POSIZIONE APERTA commercio breve.
Cioè, se il primo LONG a 1,4000, allora il secondo LONG si innescherà solo se il prezzo esce dalla zona (zona di 20 pip) meno di 1,3990 && più di 1,4010
Grazie a tutti.
//+------------------------------------------------------------------------------------------------------------------------+
//| Filtro per il mercato laterale - impedisce scambi multipli in un range di prezzo simile e crea una no-trade zone
//+------------------------------------------------------------------------------------------------------------------------+
extern int Zone1 = -10; // (zona inferiore)
extern int Zone2 = 10; // (zona superiore)
// zona di non scambio tra -10 e +10 dalla negoziazione precedente
bool CheckZone(int type)
{
int cnt = OrdiniTotali();
for (int i=0; i < cnt; i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continua;
se (OrderSymbol() != Symbol()) continua;
se (OrderMagicNumber() != Magic) continua;
se (OrderType() != tipo) continua;
se (tipo == OP_BUY)
{
if( (Bid - OrderOpenPrice()) > Zone1*Point && (Bid - OrderOpenPrice()) < Zone2*Point ) return(false);
}
se (tipo == OP_SELL)
{
if( (OrderOpenPrice()-Ask) > Zone1*Point && (OrderOpenPrice()-Ask) < Zone2*Point ) return(false);
}
}
return (true);
}
Risolvere il problema EA
Salve a tutti i programmatori MQL,
Per favore controllate il seguente codice e ditemi perché questo non sta piazzando i trade sul mio conto demo. Il suo buon EA su GJ 1m ma purtroppo non funziona. Qualcuno può correggerlo per favore e renderlo utilizzabile come un EA senza bug.
Sono grato in anticipo!
Cordiali saluti.
//+------------------------------------------------------------------+
extern int Length1 = 3;
extern int Length2 = 10;
extern int Length3 = 16;
double Histo[];
double MaHisto[]
double up[];
double dn[];
double upMode[]
doppio dnMode[];
int alertBar;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int limite;
int counted_bars=IndicatorCounted();
if(counted_bars<0) counted_bars=0;
se(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i = 0 ;i <= limite ;i++)Histo = iMA(Symbol(),0,Length1,0,MODE_EMA,PRICE_CLOSE,i) - iMA(Symbol(),0,Length2,0,MODE_EMA,PRICE_CLOSE,i);
for(int j = 0 ;j <= limite ;j++)MaHisto[j] = iMAOnArray(Histo,0,Length3,0,MODE_EMA,j);
for(int m = 0 ;m <= limite ;m++)
{
if(MaHisto[m+1] 0)
{
up[m] = Open[m]-(5*Point);
if(Bars > alertBar && m == 0)
{
//Alert(Symbol()+" "+Period()+" KI LONG ",Ask);
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,25,15,0,0,0,0,Red);
alertBar = Bars;
}
}
else if(MaHisto[m+1] >= 0 && MaHisto[m]< 0)
{
dn[m] = Open[m]+(5*Point);
if(Bars > alertBar && m == 0)
{
OrderSend(Symbol(),OP_SELL,0.1,Ask,3,25,15,0,0,0,0,Red);
alertBar = Bars;
}
}
else
{
up[m] = EMPTY_VALUE;
dn[m] = EMPTY_VALUE;
}
if( MaHisto[m] > 0 )
{
upMode[m] = High[m];
dnMode[m] = Low[m];
}
else if( MaHisto[m] < 0 )
{
dnMode[m] = High[m];
upMode[m] = Low[m];
}
}
return(0);
}
//+------------------------------------------------------------------+
Salve a tutti i programmatori MQL,
Per favore controllate il seguente codice e ditemi perché questo non piazza i trade sul mio conto demo. Il suo buon EA su GJ 1m ma purtroppo non funziona. Qualcuno può correggerlo per favore e renderlo utilizzabile come un EA senza bug.
Sono grato in anticipo!
Cordiali saluti.
//+------------------------------------------------------------------+
extern int Length1 = 3;
extern int Length2 = 10;
extern int Length3 = 16;
double Histo[];
double MaHisto[]
double up[];
double dn[];
double upMode[]
doppio dnMode[];
int alertBar;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int limite;
int counted_bars=IndicatorCounted();
if(counted_bars<0) counted_bars=0;
se(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i = 0 ;i <= limite ;i++)Histo = iMA(Symbol(),0,Length1,0,MODE_EMA,PRICE_CLOSE,i) - iMA(Symbol(),0,Length2,0,MODE_EMA,PRICE_CLOSE,i);
for(int j = 0 ;j <= limite ;j++)MaHisto[j] = iMAOnArray(Histo,0,Length3,0,MODE_EMA,j);
for(int m = 0 ;m <= limite ;m++)
{
if(MaHisto[m+1] 0)
{
up[m] = Open[m]-(5*Point);
if(Bars > alertBar && m == 0)
{
//Alert(Symbol()+" "+Period()+" KI LONG ",Ask);
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,25,15,0,0,0,0,Red);
alertBar = Bars;
}
}
else if(MaHisto[m+1] >= 0 && MaHisto[m]< 0)
{
dn[m] = Open[m]+(5*Point);
if(Bars > alertBar && m == 0)
{
OrderSend(Symbol(),OP_SELL,0.1,Ask,3,25,15,0,0,0,0,Red);
alertBar = Bars;
}
}
else
{
up[m] = EMPTY_VALUE;
dn[m] = EMPTY_VALUE;
}
if( MaHisto[m] > 0 )
{
upMode[m] = High[m];
dnMode[m] = Low[m];
}
else if( MaHisto[m] < 0 )
{
dnMode[m] = High[m];
upMode[m] = Low[m];
}
}
return(0);
}
//+------------------------------------------------------------------+"OrderSend(Symbol(),OP_SELL,0.1,Ask,3,25,15,0,0,0,R ed); "
Stai vendendo al prezzo Ask, dovrebbe essere Bid.
Il campo Commento dovrebbe essere "", non 0.
25 come SL dovrebbe essere Bid+25*Point.
15 come TP dovrebbe essere Bid-15*Point.
"R ed" non è un colore.
"OrderSend(Symbol(),OP_SELL,0.1,Ask,3,25,15,0,0,0,R ed); "
Stai vendendo al prezzo Ask, dovrebbe essere Bid.
Il campo Commento dovrebbe essere "", non 0.
25 come SL dovrebbe essere Bid+25*Point.
15 come TP dovrebbe essere Bid-15*Point.
"R ed" non è un colore.Grazie mille per il vostro supporto!
Ma, sto ancora affrontando problemi zero conoscenza di MQL. Puoi per favore copiare il codice nel file mq4 e testarlo sulla demo e poi dirmi se funziona bene. Il tuo supporto sarà contato come gentile aiuto Michel.
I migliori saluti,
Kashif.
No, mi dispiace, non ho abbastanza tempo per ora.
In poche ore prendo una barca per tornare alla mia famiglia per Natale... e niente più pc...