Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 742

 
psyman:


Vielen Dank, morgen werde ich einen Weg finden, iTime und iClose zu ersetzen, da ich auf XP sitze.

//+------------------------------------------------------------------+ 
//| 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);
  }
//+------------------------------------------------------------------+
 

Wie kompiliere ich eine separate Funktion, z. B. Schleppnetz, so dass sie - von EAsimportiert- aufgerufen werden kann?

ähnlich wie .mqh oder dll

 
demonRDV:

Hallo zusammen!

Können Sie mir bitte sagen, warum ich seine Eigenschaften nicht eingeben kann, wenn der EA funktioniert? Früher konnte ich das, aber jetzt kann ich die Eigenschaften nicht mehr öffnen. Einmal half ein Neustart des Terminals, aber das Problem trat nach einer Minute wieder auf. EA ist frisch, das Terminal funktioniert auch seit kurzem. Was ist das Problem mit den EA-Eigenschaften?

Ich danke Ihnen!

höchstwahrscheinlich ist es eine Schleife ohne Prüfung auf Unterbrechungen.
Haben Sie den Quellcode? Gab es vorher ein Problem mit diesem EA?

 
Ghabo:

Wie kompiliert man eine separate Funktion, z. B. Schleppnetz, so dass sie - von EAsimportiert- aufgerufen werden kann?

ähnlich wie .mqh genannt wird

wie diese.

in der EA
#include <trall.mqh>

und direkt im Code die Funktion trall aufrufen, zum Beispiel

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


trall("",0,-1, trall_size, trall_start, trall_step); // trall("); // trall aller Aufträge auf dem Konto mit den eingestellten Parametern

int magic = 345;
trall(_Symbol,magic, OP_BUY, trall_size, trall_start, trall_step); // trall nur BUY-Orders auf das aktuelle Symbol mit dem angegebenen slow

Dateien:
trall.mqh  27 kb
 
Maxim Kuznetsov:

Drücken Sie den Hotkey F7 :-)

Die Maus auf das EA-Symbol funktioniert nicht immer - das Symbol kann von anderen Objekten überlagert werden und der EA lädt die Nachrichtenwarteschlange und 100500 andere Gründe

Ich weiß, was es ist. Es hilft nicht )
 
Nikolay Khrushchev:

oder so ähnlich.

im Berater
#include <trall.mqh>

Ich meinte, die Schleppnetzdatei sollte separat kompiliert werden und die Erweiterung ex4 haben.

#include <trall.ex4>

oder

#import "trall.ex4"
    ...
    ...
    ...
#import
Was sollte in die Schleppnetzfunktionselbst eingefügt werden?
 
Ghabo:

Ich meinte, dass die Schleppnetzdatei kompiliert werden muss.

oder

Was sollte in die Schleppnetzfunktionselbst eingefügt werden?

Warum brauchen Sie eine solche Perversion? Ist es nicht einfacher, die Funktion in den EA zu schreiben oder, wie vorgeschlagen, in die .mqh-Datei?

Oder gibt es einen Expert Advisor mit dem Schleppnetz, aber keine Quelle? Wenn jedoch kein Exportmodifikator hinter dem Funktionsnamen steht, ist es unmöglich, die Funktion in einen anderen EA zu importieren.

Ein weiterer Nachteil solcher Bibliotheken ist, dass sie zusammen mit dem EA in ein neues Terminal gezogen werden müssen. Und wenn Sie die Include-Datei .mqh verwenden, dann können Sie nur den kompilierten EA in ein anderes Terminal kopieren.

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

Was hat es mit der Perversion auf sich?

Es ist ein Fetisch.)

So, das sollte funktionieren.

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

oder setze ich sie an der falschen Stelle ein?

 
Ghabo:

Es ist ein Fetisch.)

So, das sollte funktionieren.

Oder bringe ich es an der falschen Stelle an?

Sie scheint an der falschen Stelle zu sein. Sie müssen herausfinden, wie Sie den Import in Anführungszeichen oder spitze Klammern setzen. Es hängt davon ab, ob diese Datei im Ordner Libraries oder am selben Ort wie die Expert Advisor-Importfunktionen dieser Bibliothek gespeichert ist. Ich habe vor langer Zeit damit experimentiert und kann mich nicht mehr daran erinnern, und jetzt bin ich leider zu faul, um herauszufinden, wie man es macht.
 
psyman:


Vielen Dank, morgen werde ich mir etwas einfallen lassen, um iTime und iClose zu ersetzen, da ich auf XP sitze.

Hier, reiner Code für den Tag. Läuft nach dem Geldkurs, egal wie, egal wie beim Scrollen des Charts, egal wie beim Umschalten des Charts. Es läuft hinter dem Fadenkreuz und merkt sich den so eingestellten Offset, um danach weiter zum Bid zu navigieren.

PS: Ich habe sogar schon den HP gewechselt, da alles anfängt zu scheitern, einige Websites erfordern ein Browser-Update und das kann auf dem HP nicht aktualisiert werden,

Ich habe es auch satt, dass der RAM-Speicher auf 3,7 GB begrenzt ist.

xp hat keine Unterstützung für das Testen von Eulen auf allen CPU-Kernen

Dateien: