[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 153

 
buroff:

J'ai trouvé l'indicateur "ForexSession", mais les paramètres de temps devaient être modifiés. LocalGMT=3 - Moscou, BrokerGMT=0 - Londres, et j'ai également modifié les heures de début et de fin des sessions.

Mais rien ne fonctionne avec l'Amérique - j'ai ajouté le bloc "void ShowSessionBroker()" - pour ajouter 30 minutes à New York, après la compilation une erreur apparaît, et je n'ai pas assez d'esprit pour la réparer.

Braves gens, pouvez-vous me dire ce que j'ai fait de mal et comment le réparer ?

Je l'avais compilé normalement.
 
Sergey_Rogozin:


Sps, pourquoi y a-t-il un 1 à la fin mais un 0 ??? Si la valeur RSI doit être comparée à la précédente, doit-on l'écrire ainsi ?
double RSI = iRSI(NULL,0,14,PRICE_CLOSE,2);
 
Vovo4ka:

Opps, pourquoi y a-t-il un 1 et un 0 à la fin ? Si vous voulez comparer la valeur du RSI avec la précédente, devez-vous l'écrire de cette façon ?

Vous êtes libre de fixer le numéro de n'importe quelle barre. Tout ce qui compte, c'est la barre sur laquelle vous voulez la valeur RSIdouble.

Pour la comparaison, vous devez bien sûr disposer d'au moins deux valeurs, c'est-à-dire des valeurs sur des barres différentes.

 
Sergey_Rogozin:
Vous êtes libre de fixer le numéro de n'importe quelle barre. Tout ce qui compte, c'est la barre sur laquelle vous voulez la valeur RSIdouble.

Par exemple, si je veux comparer la valeur RSI actuelle avec le prix de clôture précédent, je peux faire ceci...
double RSI1 = iRSI(NULL,0,14,PRICE_CLOSE,1);
double RSI2 = iRSI(NULL,0,14,PRICE_CLOSE,2);
et ensuite on compare... n'est-ce pas ?
 
Vovo4ka:

Disons que je veux comparer la valeur actuelle du RSI avec le prix de clôture précédent, alors ça se passe comme ça... et ensuite on compare... d'accord ?
Exactement. Avec une correction : la barre actuelle est à zéro.
 
Sergey_Rogozin:
Vous pouvez définir le numéro de n'importe quelle barre. Il importe seulement de savoir quelle barre vous voulez obtenir la valeur du double RSI.


Je peux aussi vous dire comment faire pour que le signal ouvre une transaction... car il ouvre des transactions sur toutes les barres... ((((.

Si le signal n'ouvrait qu'un seul deal.... à la répétition un autre et peu importe si le précédent s'est fermé.....

quelque chose comme ça...))

 

Vous devez vérifier si des ordres sont déjà ouverts avant d'ouvrir un ordre.

Vous aurez besoin d'une fonction petite/non complexe,

qui vous permettra ou non d'entrer sur le marché s'il y a un signal pour le faire.

 
Sergey_Rogozin:

Vous devez vérifier si des ordres sont déjà ouverts avant d'ouvrir un ordre.

Vous aurez besoin d'une fonction petite/peu compliquée,

qui vous permettra ou vous interdira d'entrer sur le marché même s'il existe un signal pour le faire.


pouvez-vous suggérer..... par hasard ?? pour insérer .... sinon je ne peux pas vraiment évaluer le conseiller...((
 
Vovo4ka:

Pourriez-vous me suggérer de mettre .... sinon je ne peux pas vraiment évaluer l'EA de cette façon...((
La fonction ressemble à ceci
  bool Exist(){
     for(int cnt=OrdersTotal()-1; cnt>=0; cnt--){
        if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
          if(OrderMagicNumber()==Magic){
            if(OrderSymbol()==Symbol()){
              if(OrderType()<2)return(true);
      } } } }        
  return(false);} 

En d'autres termes, s'il existe des positions ouvertes, la fonction les détectera et retournera vrai.

Votre tâche consiste à placer quelque chose comme ceci avant OrderSend(.......) :

if(!Exist() && Signal)OrderSend(Symbol()........);
где Signal - Ваш сигнал на вход в рынок.
 

Pouvez-vous me dire comment vérifier la validité d'une commande ? Par exemple, j'ai un ordre en attente en place et je dois vérifier s'il a déclenché un ordre stop.


bool check=OrderChek(ticket) ;

Comment("La commande avec le ticket ", ticket, "n'existe pas (déclenché)") ;


Je n'arrive pas à trouver comment faire.

Raison: