[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 465
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
Aidez-moi à comprendre le code. Je ne sais pas comment décrire correctement cet état.
Voici un morceau de l'EA.
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
Je comprends que le facteur psychologique m'empêche... la cupidité... la peur de perdre même 300 p... Que dois-je faire ?... Oubliez que le vrai compte...
Et si je changeais mon état d'esprit ? Pas "viser à gagner", mais "viser à ne pas perdre".
Aidez-nous à comprendre !
L'essence de l'idée : tant que l'iMACD augmente - nous maintenons l'achat, dès qu'il commence à diminuer - nous fermons l'achat et ouvrons la vente. La comparaison se fait en utilisant les trois dernières valeurs, à l'exclusion de la valeur actuelle.
Le code a un problème : il ouvre plusieurs ordres à des valeurs iMACD +-0, comme je le vois. Normalizedouble() n'aide pas.
Voici le code :
Aidez-moi à comprendre le code. Je ne sais pas comment décrire correctement cet état.
Voici un morceau de l'Expert Advisor.
total=OrdersTotal();
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
Est-ce que ça ne fonctionne pas comme ça ?
pas par le biais si ne fonctionne pas.
Cela devrait être le cas tant que la condition (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 est correcte, pour ouvrir uniquement un ordre de vente si iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
C'est la même chose en sens inverse.
Peut-on le faire par le biais de while ou de bool ? Je suis en pleine crise de programmation. Je comprends la chaîne logique, mais mes mains sont lentes à la convertir en code.
pas par le biais de si ne fonctionne pas.
Il devrait être tantque la condition (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 est correcte, d'ouvrir uniquement un ordre de vente à condition que iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
C'est la même chose en sens inverse.
Peut-on le faire par le biais de while ou de bool ? Je suis en pleine crise de programmation. Je comprends la chaîne logique, mais mes mains sont lentes à la convertir en code.
Bonjour ! Je ne veux pas (et je le fais parfois) me faire prendre par StopOut. J'ai décidé de limiter le lot avec une valeur, qui n'attraperait pas StopOut dans les pires conditions. J'ai fait des essais et des erreurs pendant longtemps. Peut-être que quelqu'un a une solution ?
Données d'entrée :
- paire de devises - pas nécessairement EURUSD
- prix (prix d'achat/de vente)
- le StopLoss spécifié en points (il est supposé que le pire scénario est de ne pas attraper un StopOut même si le niveau de StopLoss est atteint)
- fixer la valeur du lot
- Toutes les autres valeurs doivent être obtenues à l'aide des fonctions MT4 : Taille 1 lot, effet de levier, taux de croisement.
Un code serait souhaitable.
En théorie, je comprends ce dont j'ai besoin : le solde moins la perte possible au niveau du StopLoss divisé par la marge. Et cette valeur doit être plus grande que le StopOut (en pourcentage).
Aidez-nous à comprendre !
L'essence de l'idée : tant que l'iMACD augmente - nous maintenons l'achat, dès qu'il commence à diminuer - nous fermons l'achat et ouvrons la vente. La comparaison se fait en utilisant les trois dernières valeurs, à l'exclusion de la valeur actuelle.
Le code a un problème : il ouvre plusieurs ordres à des valeurs iMACD +-0, comme je le vois. Normalizedouble() n'aide pas.
Voici le code :
Peut-être que c'était le problème
ouvert jusqu'à épuisement de l'argent ? ou ouvert une fois par barre ? ou une fois par tick ?
La condition est vérifiée à chaque nouvelle barre. Dans ce cas, l'intervalle de temps est horaire. Cette condition est vérifiée au début de chaque heure.
Peut-être que c'était le problème
Non... j'ai fait comme vous l'avez suggéré - la même chose demeure.
J'ai également modifié le code, en le divisant séparément en blocs d'ouverture et de fermeture par conditions. C'est du pareil au même. Je ne sais pas ce qu'il faut faire maintenant.
Voici une capture d'écran du testeur, Expert Advisor pour le testeur dans le trailer :