[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 74

 
Figar0 >> :

Qu'est-ce que ce dessin, d'ailleurs ?

Oui, j'ai déjà compris. J'ai fait le test.

>> il est clair que je viens de supprimer la valeur de l'indicateur, où est la confusion ?

 
1Rakso писал(а) >>

J'ai déjà trouvé, j'ai fait le test.

Il est clair que je viens de supprimer la valeur de l'indicateur, alors où est la confusion ?

C'est juste que ce n'est pas clair, comment pouvez-vous répondre si vous comprenez ce que vous demandez ?

Si vous ne savez pas ce que c'est, vous risquez de l'utiliser parce que vous ne savez pas quoi comparer avec Bid. C'est correct.

 
anat >> :



Pouvez-vous me dire comment insérer une condition dans cette construction if(iSAR(NULL,0,step0,0.1,0)<Close[0]), lorsque, par exemple, si nous avons des positions d'achat ouvertes, nous n'ouvrons pas de positions de vente tant que toutes les positions d'achat ne sont pas fermées. En d'autres termes, un cycle de trading, on achète 3 positions, on attend que les trois soient fermées. Les positions sont fermées uniquement par le Stop Loss ou le Take Profit. Toutes les positions sont fermées, on attend le signal, on obtient un signal, on achète ou on vend (en fonction du signal) 3 positions, etc. Les "fonctions utiles de KimIV" ont été étudiées. Vous pouvez utiliser les fonctions CountOrders(), ExistOrders(), ExistPositions(). Mais comment les insérer concrètement ? La construction if((iSAR(NULL,0,step0,0.1,0)>Close[0])&& ExistPositions(NULL,OP_SELL)==false) ne fonctionne pas. Je comprends que je dois insérer une variable logique, mais comment le faire en pratique ? Je ne comprends pas quelque chose.


Lisez le fil entier. J'ai trouvé la solution - mettre tout le code entre accolades et écrire if (OrdersTotal( ) == 0) avant. Grossier, mais ça marche. Je voudrais utiliser des variables bool pour ouvrir un nombre quelconque d'ordres, guidés par une condition if (OrdersTotal() >=maxOpen) return ;
 
anat >> :
J'ai lu toute la branche. La solution est la suivante : placez tout le code entre accolades et écrivez avant if (OrdersTotal( ) == 0). Grossier, mais ça marche. Je voudrais utiliser des variables bool pour ouvrir un nombre quelconque d'ordres, en fonction de la condition if (OrdersTotal() >=maxOpen) return ;

Si vous voulez séparer Total_sell et Total_buy, essayez d'utiliser la fonction

int CalculateCurrentOrders(string symbol) de SimpleMACD

int CalculateCurrentOrders(int Type)// OP_BUY , OP_SELL
  {
   int buys=0;
//----
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() )
        {
         if(OrderType()== Type)  buys++;
        }
     } return( buys);
  }
 
Veuillez me dire quelle fonction renvoie l'heure de clôture de la bougie actuelle ?
 
Diver-si >> :

Ce ne sont pas des stratégies, c'est juste une hypothèse à vérifier. Au fait, pourquoi l'EA ne fait-il pas de transactions ? Je ne comprends pas pourquoi.

>> Je ne sais pas. Je l'ai testé sur le testeur et ça a marché. Vous avez peut-être fait une erreur dans les paramètres. Ou peut-être n'avez-vous pas coché la case permettant à l'EA de négocier. Et le temps d'un TF majeur est défini en minutes ! c'est-à-dire que dans la variable TFUP, vous devez spécifier non pas m5 mais 5, non pas m30 mais 30, non pas H1 mais 60, etc.

 
gmMarat писал(а) >>
S'il vous plaît, dites-moi quelle fonction renvoie l'heure de clôture de la bougie actuelle.

Quelle est l'heure de fermeture de la bougie actuelle ? La bougie actuelle n'est pas encore fermée, sinon elle n'est plus actuelle, nous pouvons supposer que ce temps est approximativement Time[0]+Period()*60

 
Figar0 >> :

Quelle est l'heure de fermeture de la bougie actuelle ? La bougie actuelle n'est pas encore fermée, sinon elle n'est plus actuelle, nous pouvons supposer que ce temps est approximativement Time[0]+Period()*60

Figar0 merci, c'est ce dont j'avais besoin

 
Comment déterminer la valeur d'un pip dans la négociation d'un lot ? On m'a conseillé d'utiliser la formule MarketInfo(Symbol(),MODE_LOTSIZE)*Point, mais c'est absolument faux ! Il renvoie 100000$*0.001=100$ pour USDJPY, qui est en fait un dollar, comme pour la plupart des symboles.
 
Цена 1 пункта для стандартного лота:
 
 double ad.QuotePoint   = MarketInfo ( Symbol () , MODE_POINT     )      ;
double ad.QuoteTick    = MarketInfo ( Symbol () , MODE_TICKSIZE  )      ;
double ad.NominalTick  = MarketInfo ( Symbol () , MODE_TICKVALUE )      ;

double ad.NominalPoint = ad.NominalTick  * ad.QuotePoint / ad.QuoteTick ; // Цена 1 пункта для стандартного лота
Цена 1 пункта для ордера известного размера "ad.OrderSize":

double ad.OrderPoint   = ad.NominalPoint * ad.OrderSize                 ;