J'apprends à écrire un conseiller... - page 2

 
Figar0 >> :

...Pour le novice non programmeur, cela pourrait faire une différence...

)) C'est un grand mot pour moi ! Je suis dans le forex depuis seulement 2,5 ans... Pendant tout ce temps j'ai gagné 2 fois : 1ère fois sur démo (j'ai augmenté mon dépôt de 50 fois), 2ème fois sur réel (le résultat est plus modeste).

Je n'ai fait qu'une seule conclusion : il n'y a pas de discipline ! J'ai décidé d'essayer d'écrire quelque chose qui ne dépendrait pas de mes émotions).

 
rid >> :

Et pour vous aider à réfléchir plus rapidement, faites d'abord passer votre expert par TOUS les TICS et le résultat ici, s'il vous plaît.

Le test a traversé toutes les tiques de toute façon ! Vous pouvez le voir sur les photos...

 

Il semble que j'ai raté quelque chose dans ce code...

void ClosePos()
   {
      double pp;

        if (OrderType()==OP_BUY)
          {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue);
          }
        if (OrderType()==OP_SELL)
          {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red);
          }
   }


Je continue à obtenir une erreur dans le journal...

ticket invalide pour la fonction OrderClose
erreur 4051 de OrderClose
erreur 130 de OrderSend

Cette vérification pour fermer va avant le signal d'entrée opposé...

s'il y a un signal d'achat

(OrderType()==OP_BUY)
il ferme la vente en cours

OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue)

Et vice versa...

Mais le journal entier se remplit d'une erreur...

Il semble qu'il essaie de se fermer à chaque tick... Mais il n'y a pas de conditions...



 
Où se trouve OrderSelect?
 
Je ne sais pas) C'est pour ça que je suis ici... pour bien faire les choses...
 
sergeev >> :
Où se trouve OrderSelect?

Lisez sur cette fonction... convertie en cette variante :

void ClosePos()
   {
      double pp;
        if (OrderSelect(0, SELECT_BY_POS)==true) // Если есть открытый ордер
            { 
               if (OrderType()==OP_BUY)
                  {
                  pp=MarketInfo(OrderSymbol(), MODE_BID);
                  OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue);
                  }
               if (OrderType()==OP_SELL)
                  {
                  pp=MarketInfo(OrderSymbol(), MODE_ASK);
                  OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red);
                  }
            }      
   }
 

Je l'aurais aimé si ce n'était pas pour la qualité de la modélisation.

 
De quoi dépend-il ?
 

le rechercher, vous devez télécharger et recalculer l'historique

 
ALex2008 писал(а) >>
De quoi dépend-il ?

Téléchargez des bougies minutes (par exemple d'Alpari) et testez-les sur des bougies minutes.

Vous ne pouvez pas tester un stop de 5 pips sur des chandeliers de 4 heures.

Raison: