[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 197
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
Camarades, à l'aide s'il vous plaît... J'ai écrit un code simple, mais lors de la compilation il dit que les parenthèses sont déséquilibrées, mais je les ai déjà comptées 300 fois - tout est en place
L'idée est simple - si le MACD a été supérieur (ou inférieur) à 0 pendant 7 minutes ou moins, la position s'ouvre.
Vérifiez cette fonction
p.s. comment dessiner un script aussi joliment que vous le faites ?
Il y a un bouton SRC lorsque vous écrivez votre réponse.
En ce qui concerne les parenthèses, j'ai l'habitude de préciser ce à quoi se réfère la parenthèse fermée
}//for
}// (signal...
Et pour ce qui est des parenthèses, j'ai l'habitude de préciser à quoi se réfère la fermeture
}//for
}// (signal...
"au goût et à la couleur..." - mais je dois admettre que cette approche surcharge le code d'informations inutiles + prend du temps pour écrire des lignes de code supplémentaires + ne résout pas le problème de l'imbrication profonde (numérotation des niveaux ?).
Mieux structurer le code - comme dans l'exemple ci-dessus
Bonjour, pourriez-vous me dire comment écrire une condition pour qu'après avoir ouvert un ordre, le second ne puisse pas s'ouvrir sur la même bougie. J'écris ce qui suit :
si (... && CountOrder<2 && (BarLast>1 || BarLast==-1))
{
OrderSend(Symbol(),OP_BUY,MinLot,Ask,0,VStopLossLong,0, "BUY : ",MagicL,0,Green) ;
}
où
// compte le nombre d'ordres ouverts pour un titre
int CountOrder=0 ;
for (int j=0 ; j<OrdersTotal() ; j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol()) CountOrder++ ;
// numéro de barre de la dernière position fermée ou -1, si elle n'a pas encore été ouverte
int BarLast=BarLastClosePose() ;
и
// numéro de barre de la dernière position fermée
int BarLastClosePose()
{
datetime t ;
int i ;
for (i=0 ; i<OrdersHistoryTotal() ; i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
//if (OrderMagicNumber()!=Magic) continue ;
if (OrderSymbol()!=Symbol()) continue ;
if (OrderType()>1) continue ;
if (t<OrderCloseTime()) t=OrderCloseTime() ;
}
}
return (iBarShift(Symbol(),Period(),t,true)) ;
}
Vérifiez cette fonction
Vinin, vérifié, tout est bien dans cette fonction... return(0) fait référence à la fonction de départ, et si on ne compte pas les parenthèses attachées à return'y, on obtient 14 parenthèses... 7 dans chaque sens
Vinin, vérifié, tout est bien dans cette fonction... return(0) fait référence à la fonction de départ, et si on ne compte pas les parenthèses qui sont attachées à return'y, on obtient 14 parenthèses... 7 dans chaque direction.
Copier chaque fonction dans un fichier séparé et vérifier la compilation aide.
Si les crochets sont corrects, indiquez alors où se termine le début et où commence le signal MACD.
Copier chaque fonction dans un fichier séparé et vérifier la compilation aide.
Si les crochets sont corrects, indiquez où se termine le début et où commence le signal MACD.
hmm... int signal_MACD() est bien une fonction... mais pourquoi doit-elle être derrière la fonction de départ ? honnêtement, je ne comprends pas pourquoi certaines fonctions sont écrites à l'extérieur du départ et d'autres à l'intérieur... quelle est la différence ?