Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 752

 

Comment fermer un ordre à la clôture d'une barre ou d'un chandelier ?

int start()
  {
      if ((Time[0] == prevtime) && openbarspriceonly) {
      return(0);
      }
   
      if (! IsTradeAllowed()) {
      Comment("Trades disallow");
      return(0);
      }
   
      prevtime = Time[0];

    if (CountTrades() == 0)
    {
        open = iOpen(Symbol(), PERIOD_D1, 0);
        close = iClose(Symbol(), PERIOD_D1, 1);

     if (DayOfWeek()==1&& Ask >= open)
     { 
        ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, NULL, Magic, 0, Blue);
        if (ticket>0)
        {
          Print("Ордер ошибка в Лонг: ", GetLastError());
        }
        else 
           Print("Ордер открыт успешно");
        if(OrderSelect( ticket, SELECT_BY_POS))
        {
          if(OrderClose(ticket, lots, close,Slippage,0))
          return(0);
        }
     }
     if (DayOfWeek()==5&& Bid <= open)
     {
        ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, Slippage, 0, 0, NULL, Magic, 0, Red);
        if (ticket>0)
        {
          Print("Ордер ошибка в Шорт ", GetLastError());
        }
        else 
           Print("Ордер открыт успешно");
        if(OrderSelect( ticket, SELECT_BY_POS))
        {
          if(OrderClose(ticket, lots, close,Slippage,0))
          return(0);
        }

     }
    }
    return(0);
  }
 
ikatsko:

Dans letesteur de stratégie, la commandeMarketInfo(Symbol(),MODE_TICKVALUE) = 0( !) Cela se produit dans les situations où, par exemple, l'instrument est EURUSD et la devise de la balance est RUR ..... et dans d'autres combinaisons. Si je comprends bien, ladevise de la balance doit être la même que le nom de la deuxième devise de la paire de devises. Sinon, il renvoie une valeur nulle (dans le testeur de stratégie), ce qui rend impossible la réalisation de tests avec les combinaisons souhaitées. Comment résoudre ce problème ?

La mise en évidence n'est pas correcte ! Je calcule en euros avec EURUSD, GBPUSD etc. Seulement quand il est activé, il peut donner 0 avant la première donnée, c'est pourquoi j'ai mis une condition avant les calculs avecTICKVALUE que si != 0 ;

Dans le testeur,MarketInfo() peut ne pas fonctionner, donc connaissant le prix approximatif d'un tick, je le fixe avec la condition IsTesting() || IsOptimization() || IsVisualMode().

"Connaître leprix approximatif d'un tick " ? Ma solution est la suivante : prix approximatif d'un tick = 10*CURRENCY (USDCurrencyBalance). Il est défini dans tous les paramètres. Bien sûr, il serait bon que le taux de change de la paire de devises (devise USDBalance) puisse être pris automatiquement dans le terminal. A savoir, connaissant la devise du solde (AccountInfoString(ACCOUNT_CURRENCY)), par exemple, RUR, former une chaîne de nom de caractères, par exemple, USDRUR. Voir si un tel symbole existe dans le terminal ? Peut-être existe-t-il un tel symbole, par exemple USDRUR_c ? Obtenez une paire de devises qui est disponible dans le terminal.

 
artmedia70:
Qu'est-ce que Vista a à voir avec ça ? La souris, la souris est déjà en train de mourir. Bientôt, il sera périmé ;)
J'ai un ordinateur portable sans souris, pas comme avant avec un gros ordinateur la souris me faisait mal à l'index !
 
ikatsko:

Dans letesteur de stratégie, la commandeMarketInfo(Symbol(),MODE_TICKVALUE) = 0( !) Cela se produit dans les situations où, par exemple, l'instrument est EURUSD et la devise de la balance est RUR ..... et dans d'autres combinaisons. Si je comprends bien, ladevise de la balance doit être la même que le nom de la deuxième devise de la paire de devises. Sinon, il renvoie une valeur nulle (dans le testeur de stratégie), ce qui rend impossible la réalisation de tests avec les combinaisons souhaitées. Comment résoudre ce problème ?

La mise en évidence n'est pas correcte ! Je calcule en euros avec EURUSD, GBPUSD, etc. Seulement quand il est activé, il peut donner 0 avant la première donnée, c'est pourquoi j'ai mis une condition avant les calculs avecTICKVALUE que si != 0 ;

Dans le testeur,MarketInfo() peut ne pas fonctionner, donc connaissant le prix approximatif d'un tick, je le fixe avec la condition IsTesting() || IsOptimization() || IsVisualMode().

"Connaître leprix approximatif d'un tick " ? Ma solution est la suivante : prix approximatif d'un tick = 10*CurrencyBalance (USDBalance). Il doit être défini dans tous les paramètres. Bien sûr, il serait bon que le taux de change de la paire de devises (devise USDBalance) puisse être pris automatiquement dans le terminal. A savoir, connaissant la devise du solde (AccountInfoString(ACCOUNT_CURRENCY)), par exemple, RUR, former une chaîne de nom de caractères, par exemple, USDRUR. Voir si un tel symbole existe dans le terminal ? Peut-être existe-t-il un tel symbole, par exemple USDRUR_c ? Obtenez une paire de devises qui est disponible dans le terminal.

Je n'en ai pas besoin car le prix du tick ne change pas pendant le test, de même que le spread et bien d'autres choses. C'est pourquoi j'ai toujoursMarketInfo(Symbol(),MODE_TICKVALUE) sur le graphique de tout symbole, attaché par tout indicateur graphique que j'utilise, et je mets sa valeur dans le code de l'EA avant de le tester.
 
borilunad:
J'ai un ordinateur portable sans souris, pas comme avant j'avais un gros ordinateur et la souris me faisait mal à l'index !

Le pavé tactile est donc défectueux. Il y a des boutons dessus aussi.

Ou peut-être que mes doigts ont changé ... :) Mais je ne pense pas que le "bourdonnement" soit la cause de l'OS.

 
artmedia70:

Le pavé tactile est donc défectueux. Il y a des boutons dessus aussi.

Ou vos doigts ne sont plus bons... :) Mais je ne pense pas que le "rattle" soit la cause de l'OS.

Je ne suis pas bon avec les termes, touchpad, rattle... Bien que le pavé tactile soit quand la voiture tombe ? ! Mais je n'en ai pas peur, je n'ai pas de voiture et n'en ai pas besoin. J'aime me promener dans une belle ville, et quand je dois le faire, les transports publics sont très pratiques, avec de bonnes routes et sans embouteillages ! :)
 
borilunad:
Je ne suis pas très doué avec les termes, touchpad,"rattle" ... Bien qu'un pavé tactile soit quand une voiture tombe ?! Mais je n'en ai pas peur, je n'ai pas de voiture et n'en ai pas besoin. J'aime me promener dans une belle ville, et quand je dois le faire, les transports publics sont très pratiques, avec de bonnes routes et sans embouteillages ! :)

Avez-vous été banni de Google ?

Lepavé tactile(touchpad), l'écran tactile est undispositif de saisie par pointage; l'invention concerne l'automatisation et l'ingénierie informatique et peut être utilisée pour lire et saisir des informations, telles que des symboles, ainsi que des informations sur les coordonnées de la position d'éléments et de pièces en matériau magnétique, sur la surface de l'écran tactile. L'écran tactile contient un ensemble de cartes de circuits imprimés. Sur les couches de chaque carte de circuit imprimé se trouvent des éléments inductifs-capacitifs plats en spirale connectés en chaînes en série le long des rangées et des colonnes de la matrice. Les matrices de tous les PCB sont alignées entre elles. Une couche isolante est placée entre les surfaces adjacentes du PCB. Les sorties des rangées (colonnes) de la carte d'impression i sont connectées aux entrées des rangées (colonnes) de la carte d'impression (i+1), et les entrées des rangées et des colonnes de la matrice de la première carte de circuit imprimé du boîtier sont les entrées de l'écran tactile, dont les sorties sont les sorties des rangées et des colonnes de la matrice de la dernière carte de circuit imprimé du boîtier. Comme d'autres dispositifs de pointage, un pavé tactile est généralement utilisé pour contrôler un "pointeur"en déplaçant un doigt sur la surface du dispositif. Les tablettes tactiles existent en différentes tailles, mais leur taille est généralement inférieure à 50 cm². La forme est le plus souvent rectangulaire, mais il existe aussi des modèles circulaires.

 

Pouvez-vous me dire ce qui pourrait causer le problème qui s'est produit aujourd'hui ?

L'EA a une option pour arrêter les transactions 15 minutes avant la fermeture du marché le vendredi.

Quand un nouveau jour apparaît, l'EA vérifie si c'est vendredi, alors aujourd'hui nous arrêtons le trading dans StringToTime("23:59")-15*60

datetime FinishInFriday;
void OnTick()   {
   datetime cur=TimeCurrent();
   if(PrevDay!=Day()) {                               // при наступлении нового дня
      PrevDay =Day();
      
       if(TimeDayOfWeek(cur)==5) {                    // если сегодня пятница
         FinishInFriday=StringToTime("23:59")-15*60;    // время окончания торговли
         Print("Finish In Friday = ",FinishInFriday);   
       }
   }
   if(TimeDayOfWeek(cur)==5)
      if(cur>FinishInFriday) 
         return;
}

Dans le testeur de stratégie, cette fonction fonctionne correctement. Cependant, dans le trading réel, je vois une situation totalement différente - le conseiller expert arrête le trading au premier tick lorsque le vendredi arrive.

Voici les impressions du journal d'Expert Advisor :

Courtier n°1, démo :

0 05:59:47.731 Scalper GBPAUDpt,M1 : Fin dans le vendredi = 2014.10.23 23:44:00

Courtier 2, réel :

0 03:00:11.999 Scalper EURUSD,M1 : Fin dans le vendredi = 2014.10.23 23:44:00

C'est-à-dire que lorsque la barre quotidienne d'aujourd'hui apparaît (vendredi 24 octobre) sur le premier tick, l'EA

convertira la ligne "23:59" en heure d'hier au lieu de lui attribuer le jour d'aujourd'hui.

Mais si l'EA est redémarré le vendredi en milieu de journée, il déterminera correctement l'heure d'achèvement.

 
tuner:

Pouvez-vous me dire ce qui pourrait causer le problème qui s'est produit aujourd'hui ?

L'EA a une option pour arrêter les transactions 15 minutes avant la fermeture du marché le vendredi.

Quand un nouveau jour apparaît l'EA vérifie si c'est vendredi, alors aujourd'hui nous arrêtons le trading dans StringToTime("23:59")-15*60

Dans le testeur de stratégie, cette fonction fonctionne correctement. Cependant, dans le trading réel, je vois une situation totalement différente - le conseiller expert arrête le trading au premier tick lorsque le vendredi arrive.

Voici les impressions du journal d'Expert Advisor :

Courtier n°1, démo :

0 05:59:47.731 Scalper GBPAUDpt,M1 : Fin dans le vendredi = 2014.10.23 23:44:00

Courtier 2, réel :

0 03:00:11.999 Scalper EURUSD,M1 : Fin dans le vendredi = 2014.10.23 23:44:00

C'est-à-dire que lorsque la barre quotidienne d'aujourd'hui apparaît (vendredi 24 octobre) sur le premier tick, l'EA

convertira la ligne "23:59" en heure d'hier, au lieu de lui attribuer le jour d'aujourd'hui.

Mais si l'EA est redémarré le vendredi midi, il déterminera correctement l'heure d'achèvement.

Regardez de plus près.

Si le jour d'hier n'est pas égal au jour d'aujourd'hui...

Vous n'entrerez dans cette unité qu'une fois par jour.

Je doute que cela fonctionne correctement dans le testeur.

Regardez MqlDateTime et TimeToStruct dans la documentation.

Il s'agit d'une structure simple, et il est beaucoup plus pratique de travailler avec elle qu'avec de telles conversions de date et d'heure.

 
Vinin:

Avez-vous été banni de Google ?

Lepavé tactile(touchpad), l'écran tactile est undispositif de saisie par pointage; l'invention concerne l'automatisation et l'ingénierie informatique et peut être utilisée pour lire et saisir des informations, telles que des symboles, ainsi que des informations sur les coordonnées de la position d'éléments et de pièces en matériau magnétique, sur la surface de l'écran tactile. L'écran tactile contient un ensemble de cartes de circuits imprimés. Sur les couches de chaque carte de circuit imprimé se trouvent des éléments inductifs-capacitifs plats en spirale connectés en chaînes en série le long des lignes et des colonnes de la matrice. Les matrices de tous les PCB sont alignées entre elles. Une couche isolante est placée entre les surfaces adjacentes du PCB. Les sorties des rangées (colonnes) de la carte d'impression i sont connectées aux entrées des rangées (colonnes) de la carte d'impression (i+1), et les entrées des rangées et des colonnes de la matrice de la première carte de circuit imprimé du boîtier sont les entrées de l'écran tactile, dont les sorties sont les sorties des rangées et des colonnes de la matrice de la dernière carte de circuit imprimé du boîtier. Comme d'autres dispositifs de pointage, un pavé tactile est généralement utilisé pour contrôler un "pointeur"en déplaçant un doigt sur la surface du dispositif. Les tablettes tactiles existent en différentes tailles, mais leur taille est généralement inférieure à 50 cm². La forme est le plus souvent rectangulaire, mais il existe aussi des modèles circulaires.

Comme moi sur Vista, et rectangulaire sur mon nouveau 8-ka, qui m'a déçu par ses pitreries, il est impossible de travailler tranquillement, soudainement tout va quelque part, ça doit être une mode des téléphones portables, ils pensent que le monde entier ne vit que pour le divertissement ! Merci pour ce message informatif (vous ne savez pas faire de blague ?) !