Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 742

 
psyman:


Merci beaucoup, demain je réfléchirai à un moyen de remplacer iTime et iClose, car je suis assis sur XP.

//+------------------------------------------------------------------+ 
//| Get Time for specified bar index                                 | 
//+------------------------------------------------------------------+ 
datetime iTime(const int index,string symbol=NULL,ENUM_TIMEFRAMES timeframe=PERIOD_CURRENT)
  {
   if(symbol==NULL)
      symbol=m_symbol.Name();
   if(timeframe==0)
      timeframe=Period();
   datetime Time[1];
   datetime time=0;
   int copied=CopyTime(symbol,timeframe,index,1,Time);
   if(copied>0) time=Time[0];
   return(time);
  }
//+------------------------------------------------------------------+
 

Comment compiler une fonction séparée, par exemple le chalut, de sorte qu'elle puisse être appelée -importée depuis les EA ?

similaire à .mqh ou dll

 
demonRDV:

Bonjour à tous !

Pouvez-vous me dire pourquoi je ne peux pas entrer dans ses propriétés alors que l'EA fonctionne ? J'avais l'habitude, mais maintenant je ne peux pas ouvrir les propriétés. Un redémarrage du terminal a permis de résoudre le problème, mais celui-ci est réapparu au bout d'une minute. Le conseiller expert est récent, le terminal fonctionne également depuis peu. Quel est le problème avec les propriétés de l'EA ?

Merci !

le plus probable est qu'il soit bouclé sans vérifier les interruptions.
Avez-vous le code source ? Y avait-il un problème avec cet EA avant ?

 
Ghabo:

Comment compiler une fonction séparée, par exemple le chalut, pour qu'elle puisse être appelée -importée depuis les EA ?

de la même façon que le .mqh est appelé

comme ça.

dans l'EA
#include <trall.mqh>

et directement dans le code appeler la fonction trall, par exemple

int trall_size = 20 ;
int trall_start = 30 ;
int trall_step = 5 ;


trall("",0,-1, trall_size, trall_start, trall_step) ; // trall(") ; // trall de tous les ordres sur le compte avec les paramètres définis

int magic = 345 ;
trall(_Symbol,magic, OP_BUY, trall_size, trall_start, trall_step) ; // trall n'achète que des ordres sur le symbole actuel avec le slow spécifié

Dossiers :
trall.mqh  27 kb
 
Maxim Kuznetsov:

Appuyez sur la touche F7 :-)

La souris sur l'icône de l'EA ne fonctionne pas toujours - l'icône peut être recouverte par d'autres objets et l'EA charge la file d'attente des messages et 100500 autres raisons

Je sais ce que c'est. Cela ne sert à rien)
 
Nikolay Khrushchev:

quelque chose comme ça.

dans le conseiller
#include <trall.mqh>

Je voulais dire que le fichier de chalutage doit être compilé séparément et avoir l'extension ex4.

#include <trall.ex4>

ou

#import "trall.ex4"
    ...
    ...
    ...
#import
Que faut-il insérer à l'intérieur de la fonction chalutelle-même?
 
Ghabo:

Je voulais dire que le fichier de chalutage doit être compilé.

ou

Que faut-il insérer à l'intérieur de la fonction chalutelle-même?

Pourquoi avez-vous besoin d'une telle perversion ? N'est-il pas plus facile d'écrire la fonction dans l'EA ou comme il a été suggéré avec le fichier .mqh ?

Ou bien y a-t-il un conseiller expert avec le chalut, mais pas de source ? Mais s'il n'y a pas de modificateur d'exportation après le nom de la fonction, il sera impossible de l'importer dans un autre EA.

Un autre inconvénient de ces bibliothèques est qu'elles doivent être glissées dans un nouveau terminal avec l'EA. Et si vous utilisez le fichier include .mqh, vous pouvez alors copier uniquement l'EA compilé dans un autre terminal.

Экспортирование функций - Функции - Основы языка - Справочник MQL4
Экспортирование функций - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
Экспортирование функций - Функции - Основы языка - Справочник MQL4
 
Alexey Viktorov:

C'est quoi cette perversion ?

C'est un fétiche.)

Voilà, ça devrait marcher.

#property strict
void trall(string tr_symbol, int tr_magic, int tr_type, double tr_trall_size, double tr_trall_start, double tr_trall_step=1) export {
   if(tr_type>1) return;
   int ti;
   for(ti=OrdersTotal()-1;ti>=0;ti--) if(OrderSelect(ti,SELECT_BY_POS,MODE_TRADES)) {
      if(OrderSymbol()!=tr_symbol && tr_symbol!="") continue;
      if(OrderMagicNumber()!=tr_magic && tr_magic>0) continue;
      if(tr_type>=0 && OrderType()!=tr_type) continue;
      double work_price;
      double work_pp = SymbolInfoDouble(_Symbol,SYMBOL_POINT);
      int    work_dig = SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
      if(tr_trall_size>0) {
         if(OrderType()==0) {
            work_price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
            if(NormalizeDouble(work_price-(tr_trall_size+tr_trall_step)*work_pp, work_dig)>NormalizeDouble(OrderStopLoss(), work_dig) && 
               NormalizeDouble(work_price-tr_trall_start*work_pp, work_dig)>=NormalizeDouble(OrderOpenPrice(), work_dig)) 
                  OrderModify(OrderTicket(),-1,0,NormalizeDouble( work_price-tr_trall_size*work_pp, work_dig),-1,-1);
            }
         if(OrderType()==1) {
            work_price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
            if((NormalizeDouble(work_price+(tr_trall_size+tr_trall_step)*work_pp,work_dig)<NormalizeDouble(OrderStopLoss(),work_dig) || OrderStopLoss()==0) && 
               NormalizeDouble(work_price+tr_trall_start*work_pp,work_dig)<=NormalizeDouble(OrderOpenPrice(),work_dig)) 
                  OrderModify(OrderTicket(),-1,0,NormalizeDouble(work_price+tr_trall_size*work_pp, work_dig),-1,-1);
         }
      }
   }
}

ou est-ce que je le mets au mauvais endroit?

 
Ghabo:

C'est un fétiche.)

Voilà, ça devrait marcher.

Ou est-ce que je le mets au mauvais endroit?

Il semble être au mauvais endroit. Vous devez trouver comment mettre les importations entre guillemets ou entre crochets. Cela dépend de l'emplacement de ce fichier dans le dossier Libraries ou au même endroit que les fonctions d'importation des conseillers experts de cette bibliothèque. J'ai fait cette expérience il y a longtemps et je ne m'en souviens plus, et maintenant je suis désolé, je suis trop paresseux pour trouver comment le faire.
 
psyman:


Merci beaucoup, demain je vais réfléchir à quelque chose pour remplacer iTime et iClose car je suis assis sur XP.

Ici, code pur pour le tag. S'exécute après le cours acheteur, quelle que soit la manière dont on fait défiler le graphique, quelle que soit la manière dont on change de graphique. Il passe derrière le réticule et se souvient du décalage défini de cette façon, continuant à naviguer vers le Bid par la suite.

PS même j'ai déjà changé le hp récemment car tout commence à tomber en panne, certains sites nécessitent une mise à jour du navigateur et il ne peut pas être mis à jour sur le hp,

J'en ai aussi marre de limiter la RAM à 3,7 Go.

xp n'a pas de support pour tester les hiboux sur tous les cœurs du CPU

Dossiers :