[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 81
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
extern bool BUY = true ;
extern int Magic = 0 ;
extern double Lot = 0.1 ;
extern int takeprofit = 0 ;
extern int stoploss = 0 ;
extern int slippage = 3 ;
double SL,TP ;
int init(){
return(0) ;
}
int start()
{
if (BUY)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits) ; else TP=0 ;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits) ; else SL=0 ;
BUY=false ;
}
return(0) ;
}
void OPENORDER(string ord)
{
int error ;
while (true)
{ error=true ;
if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,",Magic,0){BUY = false;}
}
return ;
}
Veuillez me donner un exemple. Je suis en train d'apprendre, et je n'ai pas encore été confronté à la tâche de mettre en place un drapeau. )
Veuillez m'indiquer comment permettre une exécution unique d'une condition dans un EA (par exemple l'ouverture d'un ordre), plutôt que de la répéter à chaque tick. Dans ce cas, lors de la fermeture d'une position, l'EA ne doit pas en ouvrir une nouvelle. J'ai essayé de le visualiser, mais ça ne fonctionne pas comme prévu.
Merci d'avance.pourquoi avez-vous nommé la variable où le ticket de commande sera enregistré ?
si (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0){BUY = false;}
Lisez sur OrderSend(), je pense que les questions vont disparaître d'elles-mêmes, j'écrirais quelque chose comme ceci :
Peut-être avez-vous lu plus haut que j'ai exprimé mon problème. Ils semblent avoir trouvé une solution, mais je ne trouve pas dans le livre comment travailler avec une chaîne de caractères dans mql(
comment retirer les chiffres de la ligne par ligne ?
Peut-être avez-vous lu plus haut que j'ai exprimé mon problème. Ils semblent avoir trouvé une solution, mais je ne trouve pas dans le livre comment travailler avec une chaîne de caractères dans mql(
comment retirer les chiffres de la ligne par ligne ?
Créez un script pour expérimenter les fonctions de chaîne de caractères MQL4 - voir ici https://docs.mql4.com/ru/strings.
ZERO
selon quelles règles, par exemple ?
Créez un script qui expérimente les fonctions de chaîne MQL4 - voir ici https://docs.mql4.com/ru/strings/StringSubstr.
Merci !
Peut-être avez-vous lu un peu plus haut que j'ai exprimé mon problème. Cela semble être une solution, mais je ne trouve pas de moyen de travailler avec des chaînes de caractères dans mql dans le livre (
comment extraire un chiffre d'une chaîne de chiffres ?
pour convertir un nombre en une chaîne de caractères https://docs.mql4.com/ru/convert/DoubleToStr
couper une partie de la chaîne https://docs.mql4.com/ru/strings/StringSubstr depuis le début https://docs.mql4.com/ru/strings/StringLen
et le reconvertir au type réel https://docs.mql4.com/ru/convert/StrToDouble
c'est tout ce que vous avez besoin de faire avec les chaînes de caractères, peut-être que StrToDouble() sera suffisant pour vous.
Une autre solution : multiplier un nombre réel à la puissance x par 10, et donner le résultat au type int - si je ne me trompe pas, il n'y aura pas d'arrondi, puis diviser int par 10 à la puissance x.
traduire un nombre en chaîne de caractères https://docs.mql4.com/ru/convert/DoubleToStr
couper une partie de la chaîne https://docs.mql4.com/ru/strings/StringSubstr à partir du début de https://docs.mql4.com/ru/strings/StringLen
et reconvertissons tout en un type réel https://docs.mql4.com/ru/convert/StrToDouble
c'est tout ce que vous avez besoin de faire avec des chaînes de caractères, peut-être que StrToDouble() est suffisant pour vous.
Une autre solution : multipliez un nombre réel par 10 à la puissance x, et donnez le résultat au type int - si je ne me trompe pas, il n'y aura pas d'arrondi, puis divisez int par 10 à la puissance x.
au moins *découper*, car le nombre ne peut être sorti de l'indicateur que vers une chaîne... merci pour le conseil, je vais expérimenter)
IgorM:
Sans nom :