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
Jo
Qualcosa del genere:
Ciao,
Come posso codificare un allarme in un indicatore?
Per esempio, come avvisare quando MACD[0]>MACD[1]?
Grazie per l'aiuto.
JoJo
Qualcosa del genere:
Grazie Mladen, ma dove?
Ho avuto i messaggi :
Red -If_function non definito
Red-Alert_Semicolon previsto
------------------------------------------------------------------------------------------------------------------
#proprietà indicator_separate_window
#proprietà indicator_buffers 2
#proprietà indicator_color1 Argento
#proprietà indicator_color2 Red
#proprietà indicator_width1 2
//---- parametri dell'indicatore
extern int FastEMA=12;
extern int SlowEMA=26;;
extern int SignalSMA=9;
//---- buffer dell'indicatore
double MacdBuffer[]
double SignalBuffer[]
//+------------------------------------------------------------------+
//|funzione di inizializzazione dell'indicatore personalizzata |
//+------------------------------------------------------------------+
int init()
{
//---- impostazioni di disegno
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Digits+1);
//---- mappatura dei buffer degli indicatori
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- nome per l'etichetta di DataWindow e sottofinestra dell'indicatore
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Segnale");
//---- inizializzazione fatta
return(0);
}
//+------------------------------------------------------------------+
//|Convergenza/Divergenza delle medie mobili
//+------------------------------------------------------------------+
int start()
{
int limite;
int counted_bars=IndicatorCounted();
//---- l'ultima barra contata sarà ricontata
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd contati nel 1° buffer
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- linea di segnale contata nel 2° buffer
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- fatto
return(0);
}
//+--------------------------------------------
Proprio prima dell'ultimo ritorno nel vostro codice (in questo modo vi assicurate che venga eseguito solo quando tutto il resto dell'elaborazione è finito)
Grazie Mladen, ma dove?
Ho avuto i messaggi :
Rosso -If_funzione non definita
Red-Alert_Semicolon previsto
------------------------------------------------------------------------------------------------------------------
#proprietà indicator_separate_window
#proprietà indicator_buffers 2
#proprietà indicator_color1 Argento
#proprietà indicator_color2 Red
#proprietà indicator_width1 2
//---- parametri dell'indicatore
extern int FastEMA=12;
extern int SlowEMA=26;;
extern int SignalSMA=9;
//---- buffer dell'indicatore
double MacdBuffer[]
double SignalBuffer[]
//+------------------------------------------------------------------+
//|funzione di inizializzazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int init()
{
//---- impostazioni di disegno
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Digits+1);
//---- mappatura dei buffer degli indicatori
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- nome per l'etichetta di DataWindow e sottofinestra dell'indicatore
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Segnale");
//---- inizializzazione fatta
return(0);
}
//+------------------------------------------------------------------+
//|Convergenza/Divergenza delle medie mobili
//+------------------------------------------------------------------+
int start()
{
int limite;
int counted_bars=IndicatorCounted();
//---- l'ultima barra contata sarà ricontata
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd contati nel 1° buffer
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- linea di segnale contata nel 2° buffer
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- fatto
return(0);
}
//+--------------------------------------------Per favore, correggete l'errore di divisione dello zero quando si usa il timeframe come "0
pivot_crazy.mq4Qualcuno potrebbe risolvere l'errore di divisione dello zero quando si usa il timeframe come "0".
Grazie.
Provare per credere. Ora è corretto
pivot_crazy.mq4Qualcuno potrebbe risolvere l'errore di divisione dello zero quando si usa il timeframe come "0" Grazie.
Grazie a mladen funziona come un incanto
Provalo. Ora è corretto
grazie mladen funziona come un incanto
Ho bisogno di aiuto con questo ea la sua funzione martingala ma non funziona correttamente per esempio se una posizione è chiusa in perdita la funzione martingala dovrebbe moltiplicare i lotti dell'ultima posizione chiusa in perdita ma c'è un errore nel codice che fa funzionare correttamente la martingala ecco il suo eauniversalmacrossea.mq4
Questo modo di aprire un nuovo ordine dopo una perdita non è una martingala + la martingala funziona con le posizioni aperte
Ho bisogno di aiuto con questo ea la sua funzione martingala ma non funziona correttamente per esempio se una posizione è chiusa in perdita la funzione martingala dovrebbe moltiplicare i lotti dell'ultima posizione chiusa in perdita ma c'è un errore nel codice che fa funzionare correttamente la martingala ecco il suo eauniversalmacrossea.mq4
Come posso calcolare la mia dimensione del lotto, quando voglio negoziare con ogni scambio il 5% del mio denaro?
sunshineh,
Prova ad usare questa funzione:
{
RefreshRates();
double lots = 0;
double MinLots = NormalizeDouble(MarketInfo(symbol,MODE_MINLOT) ,2);
double MaxLots = NormalizeDouble(MarketInfo(symbol,MODE_MAXLOT) ,2);
double LotStep = NormalizeDouble(MarketInfo(symbol,MODE_LOTSTEP),2);
int LotDigit = 2;
if(MarketInfo(symbol,MODE_DIGITS)==3 || MarketInfo(symbol,MODE_DIGITS)==5) stopLossDistance *= 10.0;
//
//
//
//
//
if (LotStep==1) LotDigit=0;
if (LotStep==0.1) LotDigit=1;
if (LotStep==0.01) LotDigit=2;
if (Risk>0)
{
if (AccountBalance()>AccountFreeMargin())
lots = NormalizeDouble(AccountFreeMargin()*(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
else lots = NormalizeDouble(AccountBalance() *(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
}
//
//
//
//
//
lots = NormalizeDouble(NormalizeDouble(lots/LotStep,0)*LotStep,LotDigit);
lots = MathMax(MathMin(lots,MaxLots),MinLots);
return(lots);
}Come posso calcolare la mia dimensione del lotto, quando voglio negoziare ad ogni scambio il 5% del mio denaro?