[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 879

 
Le résultat est le suivant. J'ai ouvert et fermé beaucoup d'ordres, mais je n'ai besoin que d'un seul et c'est tout. Peut-être, tout est peut-être élémentaire, mais j'étais coincé. J'ai essayé de faire en sorte que, lorsqu'une certaine condition (franchissement) est remplie, un ordre soit ouvert et la variable obtienne une certaine valeur. J'ai ensuite inclus cette variable dans la condition d'ouverture des ordres mais rien ne se passe. Une commande est ouverte, puis la deuxième, puis la troisième...
 
prom18:
Le résultat est le suivant. Vous ouvrez et fermez beaucoup d'ordres, alors que vous n'en avez besoin que d'un seul. Peut-être que tout cela peut être élémentaire, mais je n'ai pas trouvé de solution. J'ai essayé de faire en sorte qu'un seul ordre soit ouvert et que la variable obtienne une certaine valeur lorsqu'une certaine condition est remplie (croisement). J'ai ensuite inclus cette variable dans la condition d'ouverture des ordres mais rien ne se passe. Une commande est ouverte, puis la deuxième et la troisième.


J'ai besoin d'un code ou d'un morceau de code - sans code juste au niveau du tableau

et il n'y a pas beaucoup de conseils :

1) vérifier le nombre d'ordres ouverts sur ce signal

2) vérifier l'heure du signal (se connecter à la barre actuelle, s'il n'y a qu'un seul signal dans la barre)

3) conjointement 1) et 2)

 
abolk:


J'ai besoin d'un code ou d'un morceau de code - sans code, juste au niveau du tableau.

et il n'y a pas beaucoup de conseils :

1) vérifier le nombre d'ordres ouverts sur ce signal

2) vérifier l'heure du signal (se connecter à la barre actuelle s'il n'y a qu'un seul signal dans la barre)

3) conjointement 1) et 2)

Merci ! Je vais l'essayer.

 
Merci pour le conseil sur le débogage de l'EA. Au fait, je suis encore nouveau sur le forum et je ne comprends pas toujours l'argot. Qu'est-ce que IMHO ? :)
artmedia70:

Je ne me souviens pas t'avoir dit comment accéder au forum... :)

Je ne pense pas que quiconque soit en mesure de vous aider ici sans l'EA lui-même à partir des seules entrées du journal d'optimisation. Les médiums se reposent depuis une décennie... :)

Et pourquoi essayez-vous de l'optimiser ? Exécutez d'abord le test et recherchez les erreurs.

L'optimisation, le cas échéant, est nécessaire lors de l'étape finale de test du conseiller expert et de la stratégie dans son ensemble.

afin de trouver les valeurs optimales des variables. Cependant, je pense personnellement, IMHO, qu'il s'agit simplement d'une adaptation stupide aux données historiques,

C'est pourquoi j'essaie de tout faire de manière dynamique dans mes EAs en me fiant à l'EA lui-même pour calculer les valeurs optimales des variables.

 
boris.45:
Qu'est-ce que IMHO ? :)
Vous pourriez juste dire, "A mon avis".
 

while ou if ?

Professionnels, expliquez-nous les tenants et les aboutissants.

Je l'ai testé sur GBPUSD le 2 février 2010.

№1

int start()
{ if(OrdersTotal()==0) //quand il n'y a pas de commandes
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-60*Point,Ask+30*Point) ;
retour ; }

Celui-ci fonctionne, il a ouvert et fermé 4 ordres.

№2

int start()
{ while(OrdersTotal()==0) //quand il n'y a pas de commandes
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-60*Point,Ask+30*Point) ;
retour ; }
Celui-ci ne veut pas fonctionner ; voici ce qu'il dit dans le journal :

Je l'ai modifié un peu, ça a marché.

№3

int start()
{ while(OrdersTotal()==0) //quand il n'y a pas de commandes
OrderSend(Symbol(),OP_BUY,0.1,NormalizeDouble(Ask,4),3,
NormalizeDouble(Ask-60*Point,4),NormalizeDouble(Ask+30*Point,4)) ;
retour ; }

En fait, des questions :

Pourquoi avec " si " (#1) tous les prix d'ouverture/fermeture avec des cotations à quatre chiffres, mais à la fermeture le dernier ordre est à cinq chiffres ?

Pourquoi "while" (#2) ne veut-il pas fonctionner, quel est le problème avec le prix ?

Pourquoi la commande "while" (#3) qui spécifie le prix d'ouverture par le biais de NormalizeDouble (Ask,4) entraîne-t-elle l'ouverture du premier ordre et la fermeture du dernier ordre dans les cotations à cinq chiffres ?

Quelle est la différence fondamentale entre if et while dans ce cas (#1 et #2) ?

P.S. Et si j'exécute séparément 8.02.10, les trois fonctionnent.

Je serais très reconnaissant pour des réponses ou des liens.

 

Quelqu'un peut-il me dire comment écrire dans un EA "si le profit de l'ordre est de +5%, alors ........" ?

 
FoxUA:

qui peut me dire comment écrire dans un EA "si le profit de l'ordre est +5% alors ........".


définir ce que signifie 5% ?

Le % montre le rapport d'une valeur à l'autre, je pense que vous cherchez une augmentation de 5 % de l'équité, alors

if (OrdersTotal()<1) eq=AccountBalance();
.....


if (AccountEquity()> eq+eq/100*5){
// прирост эквити на 5%


}

si vous êtes toujours intéressé par la modification du profit de l'ordre, alors OrderProfit() de remembered

 
IgorM:


Définir ce que signifie 5% ?

Le % montre le rapport d'une valeur à l'autre, je pense que vous cherchez une augmentation de l'équité de 5%, alors

si vous êtes toujours intéressé par le changement du profit de l'ordre, OrderProfit() de celui mémorisé


Peut-être que je ne l'ai pas exprimé correctement, j'ai besoin d'un changement par exemple BalansEURUSD pour montrer les profits ou les pertes en pourcentages "BalansEURUSD =5%" ou quelque chose comme ça.

et ainsi de suite pour plusieurs paires, disons pour la livre et le dolmen.

une fois

 
Vinin:
Vous pourriez juste dire, "A mon avis".
Merci, Victor... :) Je vais en ajouter d'autres :
________________________________________________________________________________________________________
Littéralement : de l'anglais IMHO "In My Humble Opinion" (à mon humble avis ou à mon avis sincère).
Ou familièrement en russe, avec l'argot : IMHO = "J'ai une opinion, vous ne pouvez pas la contredire" ... :)))))