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
Bon après-midi.
Je suis encore novice en matière de programmation, si quelqu'un peut me donner un conseil.
Question. Nous avons un ou plusieurs ordres ouverts. Nous savons qu'ils clôtureront avec un profit de 20 $.
Nous devons savoir à quel prix les ordres seront clôturés avec un profit de 20 $.
Nous calculons le volume total des lots ouverts, et ensuite !
Veuillez me conseiller sur la manière de procéder.
Peut-être existe-t-il une fonction de préparation ?
Merci d'avance.
Exemples d'utilisation de DistMarketAndPos().
Pourquoi aurait-on besoin d'une fonction qui détermine la distance entre le marché et la position la plus proche ? Je vois au moins quatre options de base :
Si vous souhaitez une mise en œuvre spécifique de l'une de ces options, écrivez vos demandes ici. Je répondrai à toutes les demandes dans le cadre de ce que j'ai énuméré ci-dessus.
ZZY-ZY. Vous trouverez ci-joint un modèle pour expérimenter la fonction DistMarketAndPos().
BonjourKimIV, la fonction est très bien, elle fonctionne, je la retourne, elle fonctionne aussi, mais je n'arrive pas à relier les deux moitiés.
int start()
{
if (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,Ask+150*Point);
}
return(0);
}
int DistMarketAndPos(string sy="", int op=OP_BUY, int mn=-1) {
double d, p;
int i, k=OrdersTotal(), r=1000000;
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "")<0) p=0.00001; else p=0.01;
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL) {
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return (r);
}
Nouvelle version de la fonction Message().
En ce qui concerne les directions de sortie Alert et Print (espaces 1 et 3), il convient de noter qu'elles sont capables de sortir le message ligne par ligne. En d'autres termes, s'il y a un saut de ligne dans le texte du message - caractère de contrôle "\n", chaque ligne sera imprimée indépendamment. Essayez le script de test dans la pièce jointe, je pense que vous l'apprécierez :-)
Nouvelle version de la fonction Message().
En ce qui concerne les directions de sortie Alert et Print (espaces 1 et 3), il convient de noter qu'elles sont capables de sortir le message ligne par ligne. Autrement dit, s'il y a un saut de ligne dans le texte du message - caractère de contrôle "\n", alors chaque ligne sera imprimée indépendamment. Essayez le script de test dans la pièce jointe, je pense que vous l'apprécierez :-)
Avez-vous ajouté une vérification du nivellement de l'arrêt à votre fonction OpenPosition ?
Non... à quel type de contrôle faites-vous référence ? Bon, disons que l'arrêt et la prise ont échoué le chèque, que faire ? Il existe des options :
non... à quel type de contrôle faites-vous référence ? Bon, disons que l'arrêt et la prise n'ont pas passé le contrôle, que faites-vous ? Il existe des options :
Nouvelle version de la fonctionOpenPosition() dans le script de test.
Quoi de neuf ?
1. Lorsque l'erreur 130 Invalid Stops et la valeur de la variable NumberOfTry>1 sont définies, la fonction essaiera d'ajuster les niveaux de prix StopLoss et TakeProfit aux valeurs de MODE_STOPLEVEL+MODE_SPREAD par rapport à Bid pour OP_SELL et Ask pour OP_BUY.
Note :
La variable globaleNumberOfTry doitêtre supérieure à 1 pour déclencher la correction des niveaux de prix. Cela est dû aufait que la première tentative d'ouverture d'une position révèle l'erreur 130 et corrige les niveaux de prix, tandis que la deuxième et les suivantes tentent d'ouvrir une position avec des niveaux corrigés.
Bon après-midi.
Est-il possible de compléter la bibliothèque de fonctions utiles de KimIV avec des fonctions simples comme :
1. leprix ouvert, sélectionné par une position de critères (symbole, type, taille de lot, numéro magique). Ce prix peut être stocké dans des variables globales et utilisé comme un certain niveau de prix, à partir duquel l'algorithme du conseiller expert peut être construit.
Renvoie un ticket sélectionné selon certains critères d'une position ou d'un ordre (symbole, type, taille de lot, numéro magique). Le billet est un identifiant important, il peut être utilisé partout et même comme un drapeau d'existence.
Plus il y aura de fonctions simples de ce type, plus il sera facile de trouver celles qui vous conviennent le mieux, sans craindre de faire une erreur en modifiant les fonctions existantes.
Merci pour vos fonctions.