Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 742

 
psyman:


Grazie mille, domani penserò a un modo per sostituire iTime e iClose, visto che sono seduto su 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);
  }
//+------------------------------------------------------------------+
 

Come si compila una funzione separata, ad esempio trawl, in modo che possa essere chiamata -importata dagli EA?

simile a .mqh o dll

 
demonRDV:

Ciao a tutti!

Potete dirmi perché non posso entrare nelle sue proprietà quando l'EA funziona? Lo facevo, ma ora non posso aprire le proprietà. Una volta il riavvio del terminale ha aiutato, ma il problema è apparso di nuovo dopo un minuto. Expert Advisor è fresco, il terminale funziona anche di recente. Qual è il problema con le proprietà EA?

Grazie!

molto probabilmente è in loop senza controllare gli interrupts.
Hai il codice sorgente? C'era un problema con questo EA prima?

 
Ghabo:

Come compilare una funzione separata, ad esempio trawl, in modo che possa essere chiamata -importata dagli EA?

simile a come viene chiamato .mqh

come questo.

nell'EA
#include <trall.mqh>

e direttamente nel codice chiamare la funzione trall, per esempio

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


trall("",0,-1, trall_size, trall_start, trall_step); // trall("); // trall di tutti gli ordini sul conto con i parametri impostati

int magic = 345;
trall(_Symbol,magic, OP_BUY, trall_size, trall_start, trall_step); // trall solo ordini BUY sul simbolo corrente con il lento specificato

File:
trall.mqh  27 kb
 
Maxim Kuznetsov:

Premere il tasto di scelta rapida F7 :-)

Il mouse sull'icona dell'EA non sempre funziona - l'icona può essere sovrapposta ad altri oggetti e l'EA carica la coda dei messaggi e altri 100500 motivi

So cos'è. Non aiuta )
 
Nikolay Khrushchev:

qualcosa del genere.

nel consulente
#include <trall.mqh>

Intendevo che il file trawl deve essere compilato separatamente e avere l'estensione ex4.

#include <trall.ex4>

o

#import "trall.ex4"
    ...
    ...
    ...
#import
Cosa dovrebbe essere inserito all'interno della funzione trawlstessa?
 
Ghabo:

Intendevo dire che il file trawl deve essere compilato.

o

Cosa dovrebbe essere inserito all'interno della funzione trawlstessa?

Perché avete bisogno di una tale perversione? Non è più facile scrivere la funzione nell'EA o come è stato suggerito con il file .mqh?

O c'è un Expert Advisor con il trawl, ma nessuna fonte? Ma se non c'è un modificatore di esportazione dopo il nome della funzione, sarà impossibile importarla in un altro EA.

Un altro svantaggio di tali librerie è che devono essere trascinate in un nuovo terminale insieme all'EA. E se usate il file include .mqh, allora potete copiare solo l'EA compilato in un altro terminale.

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

Perché questa perversione?

È un feticcio).

Ecco, dovrebbe funzionare.

#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);
         }
      }
   }
}

o lo sto mettendo nel posto sbagliato?

 
Ghabo:

È un feticcio).

Ecco, dovrebbe funzionare.

O lo sto mettendo nel posto sbagliato?

Sembra essere nel posto sbagliato. Devi capire come mettere l'importazione tra virgolette o tra parentesi angolari. Dipende dalla posizione di questo file nella cartella Librerie o nello stesso posto delle funzioni di importazione di Expert Advisor di questa libreria. Ho sperimentato questo molto tempo fa e non riesco a ricordare, e ora mi dispiace, sono troppo pigro per scoprire come fare.
 
psyman:


Grazie mille, domani penserò a qualcosa per sostituire iTime e iClose visto che sono seduto su XP.

Qui, puro codice per il tag. Viene eseguito dopo il prezzo Bid in qualsiasi modo, in qualsiasi modo quando si scorre il grafico, in qualsiasi modo dopo aver cambiato grafico. Corre dietro il mirino e ricorda l'offset impostato in questo modo, continuando poi a navigare verso il Bid.

PS anche io ho già cambiato l'hp di recente perché tutto sta cominciando a fallire, alcuni siti richiedono l'aggiornamento del browser e non può essere aggiornato sull'hp,

Anch'io sono stufo di limitare la RAM a 3,7gb.

xp non ha il supporto per testare i gufi su tutti i core della CPU

File: