Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1008
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
Bonne journée à tous. L'idée est de placer un ordre en suspens dans la direction opposée pour chaque ordre de marché ouvert (c'est-à-dire prendre le profit et le stop loss) lorsque le stop loss est déclenché (si ordre d'achat, alors envoyer l'ordre en suspens). Je ne trouve pas de séquence syntaxique pour écrire un script qui supprimera l'ordre en attente lorsque l'ordre actuel se ferme sur le take profit ? Il y a peut-être un script écrit parmi ceux qui sont gratuits, mais la recherche n'est pas fructueuse ( . J'aimerais en écrire un moi-même pour pouvoir m'en occuper, mais je ne comprends pas la séquence syntaxique. Laissez-moi vous expliquer sur un autre exemple - je veux une glace - la séquence syntaxique - 1) - se lever du canapé 2) s'habiller 3) aller au magasin 4) acheter une glace. Est-il possible de faire de même pour ma tâche ?
lorsque l'ordre en cours est fermé, le nombre d'ordres d'achat diminuera, ou ils seront absents du tout (cela dépend de l'algorithme), vous faites cette vérification et supprimez les ordres en attente
quelque chose comme ceci (dans ce cas, au contraire, les ordres en attente sont supprimés si un achat placé précédemment a clôturé sur un bénéfice) :
C'est donc correct ?
si (OrderOpenTime()+7200+15*60 <=TimeCurrent()) Cls_Buy=true;
si (OrderOpenTime()+7200+900 <=TimeCurrent()) Cls_Buy=true;
et finir comme ça ?
si (OrderOpenTime()+8100 <=TimeCurrent()) Cls_Buy=true ;
lorsque l'ordre en cours est fermé, le nombre d'ordres d'achat diminuera, ou ils seront absents du tout (cela dépend de l'algorithme), vous faites cette vérification et supprimez les ordres en attente
quelque chose comme ceci (dans ce cas, au contraire, les ordres en attente sont supprimés si un achat placé précédemment a clôturé avec un bénéfice) :
Dans ce cas, j'augmente le seuil de déclenchement à la taille requise. Je ne fixe pas de seuil, mais je le laisse virtuel dans le programme et j'ouvre un ordre. En conséquence, seul un ordre sur 15 à 20 s'ouvre. Que dois-je faire pour ouvrir tous les ordres ?
RefreshRates();
double bid = MarketInfo(symbol,MODE_BID);double ask = MarketInfo(symbol,MODE_ASK);
double stoplevel = NormalizeDouble(stoplevelTemp * tickTemp,digitsTemp)+tickTemp;
if(digitsTemp == 5 )stoplevel+=(700 * tickTemp);
if(spreadOrdDangBr < stoplevel) //если спред меньше стоплевела - перебиваем
spreadOrdDangBr=stoplevel;
double lotDB = calculationLot(spreadOrdDangBr,0.0025); //расчитываем лот - четверть процента свободных денег
slODB=ask-spreadOrdDangBr;
tpODB= ask+ spreadOrdDangBr;
orderTicketODB=OrderSend(symbol,OP_BUY,lotDB,ask,3,slODB,0,("dangBr" +spreadOrdDangBr));
et, par conséquent, dans le terminal
À l'aide, s'il vous plaît ! Je veux ouvrir une position d'achat, et si le prix augmente de 100 %...
pips, mon stop loss deviendra égal à zéro par rapport au stop loss précédent.
Est-ce que je le fais correctement ?
si(Bid-OrderOpenPrice()>Point*100)
{
OrderModify(OrderTicket(),OrderOpenPrice(), 0,TakeProfit,0,) ;
retour(0) ;
}
Merci !
Bonjour à tous, comment déterminer le prix maximum d'une barre sélectionnée (par exemple la 100ème) ?)
J'ai trouvé une fonction qui définit le prix maximum et minimum pour 100 barres et dessine des lignes horizontales (s'il vous plaît aidez-moi à faire passer les 15 premières barres et seulement ensuite vérifier pour 100 (comment puis-je faire ce décalage ?) et un autre problème avec les lignes - il dessine seulement 1 fois - c'est-à-dire - si nous allons encore 100 points avec de nouveaux hauts et bas - les lignes ne sont pas dessinées) quelqu'un sait s'il vous plaît écrire - voici le code
extern inttern Quant_Bars=100 ; // Nombre de barres
//--------------------------------------------------------------------
int start() // Démarrage de la fonction spéciale
{
int i ; // numéro de la barre
double Minimum=Bid ; // Prix minimum
Maximum=Bid ; // Prix maximum
for(i=0;i<=Quant_Bars-1;i++) // De zéro ( !) à
{ // ...Quant_Bars-1 ( !)
if (Low[i]<Minimum) // Si < connu
Minimum=Low[i] ; // ce sera le Min
if (High[i]> Maximum) // si > connu
Maximum=High[i] ; // ce sera le maximum.
}
Alert("Pour les dernières ",Quant_Bars, // Affichage
"Min= ",Minimum," Max= ",Maximum) ;
double linia1=ObjectCreate("highLine",OBJ_HLINE,0,0,Maximum) ;
double linia2=ObjectCreate("lowLine",OBJ_HLINE,0,0,Minimum) ;
return(0) ; //sortir start()
}