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
... in questa parte di codice è un problema con la nuova compilazione (errore ---> 'MarketInfo' - tipo di espressione switch illegale) forse era tutto OK fino all'aggiornamento a MT4 build 600+ ... ma da allora non funziona più.
Quindi, potresti per favore postare qualche versione più recente ... se ovviamente sei ancora in giro.
Penso che se si cambia
switch ( MarketInfo( strSymbol, MODE_DIGITS ) )
a
Si compila bene
... in questa parte di codice c'è un problema con la nuova compilazione (errore ---> 'MarketInfo' - tipo di espressione switch illegale) forse era tutto OK fino all'aggiornamento a MT4 build 600+ ... ma da allora non funziona più.
Quindi, potresti per favore postare qualche versione più recente ... se ovviamente sei ancora in giro.
https://book.mql4.com/operators/switch
"I valori di Expression e di Parameters possono essere solo i valori di tipo int. L'espressione può essere una costante, una variabile, una chiamata di funzione o un'espressione. Ogni variazione 'caso' può essere contrassegnata da una costante intera, una costante di carattere o un'espressione costante. Un'espressione costante non può includere variabili o chiamate di funzione".
Ancora una volta, hai trovato una soluzione più semplice e migliore.
Nel mio diverso EA, si scrive così:
extern double Risk_Percent = 3;
extern int StopLoss = 50;
//+------------------------------------------------------------------+
{
double lot = MathCeil(AccountFreeMargin() * Risk_Percent / 1000) / 100;
if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
return (MathMin(NormalizeDouble(lot,PipMultiplier),MaxLotSize));
}
//+------------------------------------------------------------------+
if(_Digits==5 || _Digits==3)PipMultiplier=10;
else PipMultiplier=1;
slippage=Slippage*PipMultiplier;
if(_Digits<4)
{
point=0.01;
}
else
{
point=0.0001;
}
return(0);
//+------------------------------------------------------------------+
double lot = MathCeil(AccountFreeMargin() * Risk_Percent / 1000) /