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

 
Dimka-novitsek:
Désolé, je ne peux pas suivre le lien, il ne fonctionne pas pour moi.
int OrdersHistoryTotal( )
Renvoie le nombre de positions fermées et d'ordres supprimés dans l'historique du compte courant, chargé dans le terminal du client. La taille de la liste de l'historique dépend des paramètres actuels de l'onglet "Historique du compte" du terminal.
Exemple :
  // récupération des informations de l'historique des transactions int i,accTotal=OrdersHistoryTotal() ; for(i=0;i<accTotal;i++) { //---- vérifier le résultat de la sélection if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error accessing the history base (",GetLastError(),")") ; break ; } // travailler avec l'ordre ... }
 
Merci ! !!
 

Pouvez-vous me dire comment spécifier correctement dans la condition le nom de l'instrument de l'ordre déjà ouvert ? Si un ordre EURUSD_bay est ouvert, alors EURJPY_sell doit être ouvert. Je pense qu'il y a quelque chose qui cloche ici. Si nous supprimons OrderSymbol()=="EURUSD", l'ordre s'ouvrira, mais pour ouvrir le troisième ordre, nous devons encore résoudre ce problème.

if((OrdersTotal()==1)&&(OrderType()==OP_BUY && OrderSymbol()=="EURUSD"))
     {
     TimeBar=Time[0];
     OPENORDER2("Sell");
     }
 

Quelqu'un peut-il me conseiller comment écrire un code qui ferait des transactions à un certain moment. J'ai regardé la FAQ et je n'ai rien compris. Je suis un programmeur, mais je suis en conflit direct avec ce langage.

Je veux montrer plus de détails. Je devrais prendre une barre d'heure à 8:00 tous les jours et ouvrir des ordres en attente à partir de celle-ci. Pour clôturer les ordres en cours, il est nécessaire soit par expiration du temps, soit par TP. et à nouveau à 8-00 pour prendre une barre, etc. Le code ci-dessous. C'est un problème avec le premier accord qui fonctionne clairement selon les critères, et ensuite j'obtiens quelque chose pour rien. Si ce n'est pas difficile, aidez-nous, s'il vous plaît. ....

//Учет закрытых ордеров-----------------------------------------------
  if (OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY)==true) or_cl=OrderCloseTime();
   else or_cl=StrToTime(TimeToStr((TimeCurrent()+24*60*60), TIME_DATE)+" "+17+":"+59);
     
   // Предварит.обработка
  
  time_op=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+8+":"+0);
  time_bar=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+7+":"+0);
  Cur_time=StrToTime(TimeToStr(TimeCurrent(), TIME_SECONDS));
 
 if (Cur_time>or_cl)
   {time_op+=24*60*60;
      time_bar+=24*60*60;}
    else {time_op-=24*60*60;
          time_bar-=24*60*60;}  
  
  if (Cur_time<=time_op && Total==0)return;
  // Определяем часовой квадрат--------------------------------------------------------------
   Hit=NormalizeDouble(High[iBarShift(NULL,PERIOD_H1,time_bar)],5);
   Lo=NormalizeDouble(Low[iBarShift(NULL,PERIOD_H1,time_bar)],5); 


 
coolon:

Quelqu'un peut-il me conseiller comment écrire un code qui ferait des transactions à un certain moment. J'ai regardé la FAQ et je n'ai rien compris. Je suis un programmeur, mais je suis en conflit direct avec la langue.

Je veux montrer en détail ce que je dois faire chaque jour à 8h00 pour saisir une barre d'une heure et ouvrir des ordres en attente à partir de celle-ci. Pour clôturer les ordres en cours, il est nécessaire soit par expiration du temps, soit par TP. et à nouveau à 8-00 pour prendre une barre, etc. Le code ci-dessous. C'est un problème avec le premier accord qui fonctionne clairement selon les critères, et ensuite j'obtiens quelque chose pour rien. Si ce n'est pas difficile, aidez-nous, s'il vous plaît. ....



h ttps://www.mql5.com/ru/forum/130550

 

Je suis désolé, j'ai écrit des bêtises ici, si vous pouviez me montrer où je suis complètement moutonnier.

Les poses ne semblent pas s'ouvrir du tout, rien ne se passe.

//+------------------------------------------------------------------+
//| pour avalanche.mq4 |
//| Droits d'auteur © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#lien de propriété "http://www.metaquotes.net"
extern double stoploss=0 ; extern double takeprofit=20 ; extern int otstup=20 ; extern datetime expiration=0 ;

//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
//----

//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1,R2,A=1 ;double price=PRICE_OPEN ;
R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss ;


int start()
{
//----

OrderSelect()tiket,SELECT_BY_TICKET, MODE_TRADES ) ;
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
si (i<2){
tiket= OrderSend( Symbole(), OP_BUYSTOP, volume*A, prix+otstup*Point, Point*3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red) ;
Alert ("OP_BUYSTOP", GetLastError( ) ;
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, prix -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' ) ;
Alert ("OP_SELLSTOP", GetLastError( ) ;
i=OrdersTotal() ; } } }

//----
retour(0) ;
}
//+------------------------------------------------------------------+

 
double stoploss=0
On ne peut pas diviser par zéro.
 
Les bonnes personnes aident !!!!!! J'ai besoin d'un script pour fermer les positions sur la ligne médiane de Bollinger !!!!!. S'il vous plaît !!!!
 
alexr7:
Les bonnes personnes aident !!!!!! J'ai besoin d'un script pour fermer les positions sur la ligne médiane de Bollinger !!!!!. S'il vous plaît !!!!
Et quel est votre critère pour qu'une position soit sur la ligne médiane de Bollinger ?
 
artmedia70:
Et quel est le critère pour vous qu'une position se trouve sur la ligne médiane de Bollinger ?
Merci beaucoup pour votre réponse rapide !!!!!!!!!!!!!!. Le critère est un indicateur standard de bandes de Bollinger avec les paramètres suivants : période 20, décalage 0, déviation 2, fermeture pondérée (HLCC/4) !!!!!!!.
Raison: