Questions des débutants MQL5 MT5 MetaTrader 5 - page 411
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
J'ai commencé à étudier les tableaux.
J'ai écrit une fonction pro-order avec des tableaux, 3 tableaux = 0 achat, 1= vente, 2= total des transactions d'achat et de vente.
Puis j'ai écrit une condition d'achat si ( la première condition && array [0] == 0 )alors nous ouvrons un achat.
et en vente si ( la première condition && array [1]== 0) alors nous ouvrons une position de vente.
Mais le testeur lance une erreur et le test s'arrête, quel est le problème ? ( error " array exit " )
Cela signifie que l'index que vous adressez est en dehors de la disposition du tableau. Par exemple, si array[ 3 ] ; vous ne pouvez adresser que les éléments de 0 à 2. Vérifiez votre code.
Une autre possibilité est que vous n'avez pas partitionné le tableau (avec ArrayResize()), mais que vous essayez d'accéder à certains de ses éléments.
le code...
Essayez de le découvrir vous-même, le testeur doit indiquer dans quelle ligne et à quel endroit de la ligne l'erreur s'est produite.
o_oops je ne savais pas que le terminal poke aussi où se trouve l'erreur, première fois que je tombe sur une erreur critique.
Il crache dessus.
Veuillez m'indiquer comment vérifier le fonctionnement de l'indicateur.
L'idée est la suivante : quand l'EA forme une nouvelle barre, il appelle l'indicateur, mais l'indicateur n'a pas de données à ce moment et je reçois les données de la barre précédente (il n'a pas eu le temps de calculer).
Comment éviter ce problème. De plus, tout est OK dans le testeur de stratégie. Je reçois soit très bien, soit pas du tout sur la démo !
C'est tout, ce n'est pas pertinent. Résolu.
Bonjour, j'ai un problème de débutant...
Je n'arrive pas à faire en sorte que le système compare la valeur de clôture de la dernière barre avec les hauts et les bas d'une certaine période, par ex.
les 20 dernières mesures. Qu'est-ce que je fais de mal ?
J'ai vérifié avec Alert et pour une raison inconnue, le testeur donne la valeur maximale du calcul à partir du tout dernier tick, mais il donne cette valeur
C'est le même nombre de fois que les ticks, donc l'ordre ne s'ouvre pas.
La deuxième question est de savoir comment faire en sorte que mon EA attende l'ouverture de la prochaine barre (période de 30m). Lorsque je teste en utilisant des points de contrôle, tout va bien, mais si j'utilise des ticks,
puis l'EA s'ouvre dans la même barre juste après avoir fermé au stop loss....
Par exemple, sur une période de 30m, je veux fermer l'ordre 5 secondes avant la fin de la barre (29.55, 59.55).
Sur la base de toutes les données disponibles à ce moment-là. A ce stade, le problème est que si un tick ne se produit pas dans les 5 secondes, donc aucun
(En théorie, c'est une connerie, mais en réalité, le prochain tick peut apparaître dans quelques chandeliers pour une raison quelconque.
peut s'avérer être dans quelques bougies pour une raison quelconque.
Merci d'avance !Aidez-nous avec les commentaires. Sur chaque barre, des commentaires sont générés. À chaque cochage, je veux ajouter du texte au commentaire existant.
J'appelle le code :
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Ajoute un nouveau commentaire et à chaque fois qu'il est coché, une nouvelle ligne et du texte glissent vers le bas.
Comment faire pour qu'il supprime les dernières lignes avant la sortie ?
Aidez-nous avec les commentaires. Sur chaque barre, des commentaires sont générés. À chaque cochage, je veux ajouter du texte au commentaire existant.
J'appelle le code :
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Ajoute un nouveau commentaire et à chaque fois qu'il est coché, une nouvelle ligne et du texte glissent vers le bas.
Comment faire pour qu'il supprime les dernières lignes avant la sortie ?
Il me semble que vous ne pouvez que remplacer complètement Comment()
Et par conséquent, pour changer une partie du commentaire à chaque tick, il faut changer complètement le commentaire à chaque tick.
Aidez-nous avec les commentaires. Sur chaque barre, des commentaires sont générés. À chaque cochage, je veux ajouter du texte au commentaire existant.
J'appelle le code :
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Ajoute un nouveau commentaire et à chaque fois qu'il est coché, une nouvelle ligne et du texte glissent vers le bas.
Comment faire pour qu'il supprime les dernières lignes avant la sortie ?