Questions des débutants MQL5 MT5 MetaTrader 5 - page 664
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Oui, les paramètres d'entrée ne peuvent pas être modifiés. Pour être honnête, je ne comprends pas pourquoi vous devez changer cette valeur en fonction des cotations à 3/5 chiffres ? Vous devez définir cette valeur dans les paramètres d'entrée. Ne pouvez-vous pas simplement écrire 100 (si 3/5 chiffres) et ne pas vous en soucier ?
En fait, j'optimise sur 5 chiffres - plus d'historique, mais je négocie sur 4 et utilise des paramètres différents, y compris les points. Je ne veux pas confondre les paramètres - c'est pourquoi cette solution est la bonne.
En fait, j'optimise sur 5 chiffres - plus d'historique, mais je négocie sur 4 et utilise des paramètres différents, y compris les points. Je ne veux pas confondre les paramètres - c'est pourquoi cette solution est la bonne.
Cela devrait fonctionner comme suit
int OnInit() {
// Округлим огрызки - 3 и 5 знак
Sign=(SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)==3 || SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)==5)?10:1;
// Приведем к терминальному количеству знаков
TakeProfit*=Sign;
StopLoss*=Sign;
TrailingShift*=Sign;
TrailingStep*=Sign;
Slippage*=Sign;
}
Cela devrait fonctionner
int OnInit() {
// Округлим огрызки - 3 и 5 знак
Sign=(SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)==3 || SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)==5)?10:1;
// Приведем к терминальному количеству знаков
TakeProfit*=Sign;
StopLoss*=Sign;
TrailingShift*=Sign;
TrailingStep*=Sign;
Slippage*=Sign;
}
Je reçois également cette erreur - comment puis-je la corriger ?
'MODE_MAIN' - l'identifiant du recenseur est déjà défini initmql4__1.mqh 223 24
ENUM_STO_PRICE StoFieldMigrate(int field)
{
switch(field)
{
case 0: return(STO_LOWHIGH);
case 1: return(STO_CLOSECLOSE);
default: return(STO_LOWHIGH);
}
}
//+------------------------------------------------------------------+
enum ALLIGATOR_MODE { MODE_GATORJAW=1, MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE { MODE_MAIN, MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE { MODE_BASE, MODE_UPPER, MODE_LOWER };
enum ICHIMOKU_MODE { MODE_TENKANSEN=1, MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
enum MAIN_SIGNAL_MODE{ MODE_MAIN, MODE_SIGNAL };
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double CopyBufferMQL4(int handle,int index,int shift)
{
double buf[];
switch(index)
{
case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
return(buf[0]); break;
case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
return(buf[0]); break;
case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
return(buf[0]); break;
case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
return(buf[0]); break;
case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
return(buf[0]); break;
default: break;
}
return(EMPTY_VALUE);
}
//+------------------------------------------------------------------+
Dans une telle situation, j'obtiens une erreur - aidez-moi à comprendre pourquoi l'erreur se produit - dans MQL5 vous ne pouvez pas changer la valeur d'une variable entrée par l'utilisateur ?
Vous ne pouvez pas !
Si vous avez décidé d'utiliser MQL4_to_MQL5.mqh, je vous recommande vivement de ne pas le faire. Comme il a été écrit pour les exemples, qui sont dans la description de la bibliothèque. C'est-à-dire qu'il n'est pas du tout universel. En particulier, il existe une version très limitée de MarketInfo (pour ne faire que des exemples). Mais de bonnes solutions existent. Il est donc préférable de ne pas utiliser ce mqh lui-même, mais de n'en tirer que des choses utiles.
Je reçois également cette erreur - comment puis-je la corriger ?
'MODE_MAIN' - l'identifiant du recenseur est déjà défini initmql4__1.mqh 223 24
ENUM_STO_PRICE StoFieldMigrate(int field)
{
switch(field)
{
case 0: return(STO_LOWHIGH);
case 1: return(STO_CLOSECLOSE);
default: return(STO_LOWHIGH);
}
}
//+------------------------------------------------------------------+
enum ALLIGATOR_MODE { MODE_GATORJAW=1, MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE { MODE_MAIN, MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE { MODE_BASE, MODE_UPPER, MODE_LOWER };
enum ICHIMOKU_MODE { MODE_TENKANSEN=1, MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
enum MAIN_SIGNAL_MODE{ MODE_MAIN, MODE_SIGNAL };
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double CopyBufferMQL4(int handle,int index,int shift)
{
double buf[];
switch(index)
{
case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
return(buf[0]); break;
case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
return(buf[0]); break;
case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
return(buf[0]); break;
case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
return(buf[0]); break;
case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
return(buf[0]); break;
default: break;
}
return(EMPTY_VALUE);
}
//+------------------------------------------------------------------+
Changement de nom. Les champs de TOUTES les énumérations doivent être différents. Et vous avez les mêmes champs dans l'enum ADX_MODE et l'enum MAIN_SIGNAL_MODE.
Je l'ai commenté pour l'instant... Je ne pense pas que ce soit critique...
Cependant, j'ai compilé un EA en utilisant deux bibliothèques - fonctions de trading et traduction d'autres fonctions de 4 à 5.
Je suis toujours malade du testeur dans 5 - je ne trouve pas où les indicateurs peuvent être ajoutés dans la visualisation et comment filtrer le journal...
Je ne peux pas encore voir les ordres ouverts, hein.
Comment l'interpréter :
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Lors du paramétrage en attente erreur imprévue - 4756
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Magic=49266773 cPoza::setOrder a envoyé une requête pour définir un ordre. Type : BuyStop lot=1.0 opPrice=68180.0 tp=68200.0 sl=67260.0
2016.11.04 20:42:25.224 2016.02.11 14:04:30 échec de l'achat stop 1.00 RTS-12.16 à 68180 sl : 67260 tp : 68200 [Expiration non valide].
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Lors du paramétrage en attente erreur imprévue - 4756
Comment l'interpréter :
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Lors du paramétrage en attente erreur imprévue - 4756
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Magic=49266773 cPoza::setOrder a envoyé une requête pour définir un ordre. Type : BuyStop lot=1.0 opPrice=68180.0 tp=68200.0 sl=67260.0
2016.11.04 20:42:25.224 2016.02.11 14:04:30 échec de l'achat stop 1.00 RTS-12.16 à 68180 sl : 67260 tp : 68200 [Expiration non valide].
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Lors du paramétrage en attente erreur imprévue - 4756
Jusqu'à présent, je suis malade du testeur en cinq - je ne trouve pas où les indicateurs peuvent être ajoutés à la visualisation et comment filtrer le journal...
Pas encore de moyen de voir les commandes en cours, hein.