Come codificare? - pagina 334

 

Ciao ragazzi,

Non riesco a disegnare Inviluppi su Array

Posso disegnare la banda di Bollinger senza problemi.

Voglio disegnare le buste sull'indicatore CCI.

Ho disegnato con Bollingerbands con il codice allegato e funziona,

l'unico problema è disegnare con Envelopes sull'indicatore CCI.

Per favore aiutatemi.

File:
cci_env.mq4  3 kb
 
luffy:
Ciao ragazzi,

Non riesco a disegnare Envelopes su Array

Posso disegnare la banda di Bollinger senza problemi.

Voglio disegnare le buste sull'indicatore CCI.

Ho disegnato con Bollingerbands con il codice allegato e funziona,

l'unico problema è disegnare con Envelopes sull'indicatore CCI.

Per favore, aiutatemi.

luffy

Non si può fare senza codificare gli inviluppi per ogni valore dell'indicatore a cui si desidera applicare gli inviluppi

 
mladen:
luffy Non può essere fatto senza codificare gli inviluppi per ogni valore dell'indicatore a cui si desidera applicare gli inviluppi

Ciao Mladen

Apprezzo il tuo grande aiuto a come incapace di programmare.

Ho un problema con l'allegato Macd3 che si aggiorna solo se lo faccio modificare e poi lo chiudo di nuovo.

Sarebbe di grande aiuto se aggiornasse ad ogni barra chiusa. Spero che tu possa trovare una soluzione.

BTW questo è un indicatore molto bello per quanto riguarda ottenere il punto di svolta in anticipo!

File:
macd_3m.ex4  17 kb
macd_3m.mq4  5 kb
 
wolfsch:
Ciao Mladen

Apprezzo il vostro grande aiuto in quanto incapace di programmare.

Ho un problema con l'allegato Macd3 che si aggiorna solo se lo faccio modificare e poi lo chiudo di nuovo.

Sarebbe di grande aiuto se aggiornasse ad ogni barra chiusa. Spero che possiate trovare una soluzione.

BTW questo è un indicatore molto bello per quanto riguarda l'anticipazione del punto di svolta!

wolfsch

Funziona bene sul mio terminale (testato su un grafico a 1 minuto e ha fatto tutto OK - sto usando la build 788)

 
wolfsch:
Ciao Mladen

Apprezzo il vostro grande aiuto in quanto incapace di programmare.

Ho un problema con l'allegato Macd3 che si aggiorna solo se lo faccio modificare e poi lo chiudo di nuovo.

Sarebbe di grande aiuto se aggiornasse ad ogni barra chiusa. Spero che possiate trovare una soluzione.

BTW questo è un indicatore molto bello per quanto riguarda ottenere il punto di svolta in anticipo!

Funziona anche per me

 
luffy:
Ciao ragazzi,

Non riesco a disegnare Envelopes su Array

Posso disegnare la banda di Bollinger senza problemi.

Voglio disegnare le buste sull'indicatore CCI.

Ho disegnato con Bollingerbands con il codice allegato e funziona,

l'unico problema è disegnare con Envelopes sull'indicatore CCI.

Per favore, aiutatemi.

luffy

Prova ora: cci_env_1.mq4

File:
cci_env_1.mq4  3 kb
cci_env.gif  71 kb
 

Ciao, sto cercando di impostare il mio ea per chiudere automaticamente tutti i miei trade aperti in un momento specifico. e mi chiedevo se qualcuno potesse aiutarmi a fare un po' di luce su questo argomento. grazie.

Saluti

Ryan

 
tkuan77:
Ciao, sto cercando di impostare il mio ea per chiudere automaticamente tutti i miei trade aperti in un momento specifico. e mi chiedevo se qualcuno potesse aiutarmi a fare un po' di luce su questo argomento. grazie.

Saluti

Ryan

Ryan

Controlla questo: https: //www.mql5.com/en/forum/177401/page2

Non preoccuparti per i due avvisi del compilatore durante la compilazione del codice - sono benigni

 

Ciao mladen, ho provato a inserire la parte relativa alla chiusura del trade in base ai tempi e alla compilazione, mi dà un avviso come dici tu, tuttavia, quando eseguo il codice, non chiude il trade ai tempi che ho specificato.

Non sono troppo sicuro di quale potrebbe essere l'errore qui. Spero che tu possa illuminarmi su dove potrei essere in errore qui.

Saluti

Ryan

//+------------------------------------------------------------------+

//| Forex TSD - forex forum |

//+------------------------------------------------------------------+

#proprietà copyright "R Creation"

#property link "https://www.forex-tsd.com"

//---- parametri di input

extern double TakeProfit = 200.0;

extern double Lots = 0.1

extern double StopLoss = 200.0;

extern int PreferredHour_1st = 5;

extern int PreferredMinute_1st = 30;

int magicNo_1st = 530;

extern bool UseCurrSymbol = False; // non so bene a cosa serva questo.....

//+------------------------------------------------------------------+

//| funzione di inizializzazione per esperti |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione esperto |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| funzione di avvio esperto |

//+------------------------------------------------------------------+

datetime newbar;

doppio pBid, pAsk;

int start()

{

if(newbar==Time[0])return(0);

altrimenti newbar=Time[0];

int biglietto, totale;

se(Bars<100)

{

Print("barre inferiori a 100");

return(0);

}

se(TakeProfit<10)

{

Print("TakeProfit inferiore a 10");

return(0); // controlla TakeProfit

}

doppio Fast_MA, Slow_MA;

Fast_MA = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);

Slow_MA = iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,0);

total = OrdersTotal(); // controlla il numero totale di operazioni attualmente aperte

se(totale < 1)

{

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA > Slow_MA)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"Il mio EA",magicNo_1st,0,Verde);

se(biglietto>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine BUY aperto : ",OrderOpenPrice());

}

else Print("Errore nell'apertura dell'ordine BUY: ",GetLastError());

return(0);

}

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA < Slow_MA)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"Il mio EA",magicNo_1st,0,Rosso);

se(biglietto>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine SELL aperto : ",OrderOpenPrice());

}

else Print("Errore nell'apertura dell'ordine SELL: ",GetLastError());

return(0);

}

return(0);

}

if(total > 1) //per chiudere gli ordini in base al tempo... non ancora risolto.

{

if (Hour()==7 && Minute()==0 && Seconds()==0)

{

for (int i=OrdiniTotali()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

if (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Rosso);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+

 
tkuan77:
Ciao mladen, ho provato a inserire la parte relativa alla chiusura del trade in base ai tempi e alla compilazione, mi dà un avviso come dici tu, tuttavia, quando eseguo il codice, non chiude il trade ai tempi che ho specificato.

Non sono troppo sicuro di quale potrebbe essere l'errore qui. Spero che tu possa illuminarmi su dove potrei essere in errore qui.

Saluti

Ryan

//+------------------------------------------------------------------+

//| Forex TSD - forex forum |

//+------------------------------------------------------------------+

#proprietà copyright "R Creation"

#property link "https://www.forex-tsd.com"

//---- parametri di input

extern double TakeProfit = 200.0;

extern double Lots = 0.1

extern double StopLoss = 200.0;

extern int PreferredHour_1st = 5;

extern int PreferredMinute_1st = 30;

int magicNo_1st = 530;

extern bool UseCurrSymbol = False; // non so bene a cosa serva questo.....

//+------------------------------------------------------------------+

//| funzione di inizializzazione per esperti |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione esperto |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| funzione di avvio esperto |

//+------------------------------------------------------------------+

datetime newbar;

doppio pBid, pAsk;

int start()

{

if(newbar==Time[0])return(0);

altrimenti newbar=Time[0];

int biglietto, totale;

se(Bars<100)

{

Print("barre inferiori a 100");

return(0);

}

se(TakeProfit<10)

{

Print("TakeProfit inferiore a 10");

return(0); // controlla TakeProfit

}

doppio Fast_MA, Slow_MA;

Fast_MA = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);

Slow_MA = iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,0);

total = OrdersTotal(); // controlla il numero totale di operazioni attualmente aperte

se(totale < 1)

{

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA > Slow_MA)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"Il mio EA",magicNo_1st,0,Verde);

se(biglietto>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine BUY aperto : ",OrderOpenPrice());

}

else Print("Errore nell'apertura dell'ordine BUY: ",GetLastError());

return(0);

}

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA < Slow_MA)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"Il mio EA",magicNo_1st,0,Rosso);

se(biglietto>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine SELL aperto : ",OrderOpenPrice());

}

else Print("Errore nell'apertura dell'ordine SELL: ",GetLastError());

return(0);

}

return(0);

}

if(total > 1) //per chiudere gli ordini in base al tempo... non ancora risolto.

{

if (Hour()==7 && Minute()==0 && Seconds()==0)

{

for (int i=OrdiniTotali()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

if (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Rosso);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+

Questa parte

if(newbar==Time[0])return(0);

altrimenti newbar=Time[0];

int biglietto, totale;

se(Bars<100)

{

Print("barre inferiori a 100");

return(0);

}

se(TakeProfit<10)

{

Print("TakeProfit inferiore a 10");

return(0); // controlla TakeProfit

}

Sta impedendo all'ea di chiudere gli ordini in un certo momento se non è il primo tick di una nuova barra e se il profitto non è > 10 pips

Motivazione: