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

 
Ihor Herasko:

Schreiben Sie Ihre eigenen Ticks und geben Sie sie in den Strategietester ein.

sondern etwas, das benutzerfreundlicher ist?

 
Andrey Sokolov:

sondern etwas, das benutzerfreundlicher ist?

Kannst du nicht schreiben, was du nicht selbst tun willst? dannhttps://www.mql5.com/ru/job

Hier ist der Artikelhttps://www.mql5.com/ru/articles/4566

Sie lesen es, zitieren es nach Ihren eigenen Regeln der Verteilung

wenn MT4 seine eigenen Charts und Ticks benötigt, dann lesen Sie den Artikel, exportieren Sie Kurse aus MT5 und importieren Sie sie in MT4

Einfacher geht es nicht

Wenn Sie für MT4 programmieren können, öffnen Sie das PeriodConverter-Skript von MT4 in MetaEditor, der Code dort ist klar und ziemlich kompakt in der Größe, es wird Sie nicht viel Zeit kosten, um es herauszufinden, dann erstellen Sie Ihr eigenes Diagramm und testen Sie es

ZS: Ich habe mich daran erinnert, dass ich im Forum ein Skript zur Erstellung von Diagrammen mit der Wehrstrass-Funktion gepostet habe.

https://www.mql5.com/ru/forum/86386/page988#comment_7843056

 

Hallo. Funktion Gibt ein Flag für das Vorhandensein einer Position oder Order in Marktnähe zurück (Funktion im Forum zu finden). Für den Testcode sollte er eine Position eröffnen, wenn er etwa 200 Pips über und unter dem aktuellen Kurs liegt, keine Positionen. Warum eröffnet er bei jedem Tick eine Position zu fast demselben Preis?

//+------------------------------------------------------------------+
//|                                                    testprpos.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input int      Input1;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(!ExistOPNearMarket(Symbol(),-1,200))
     {
      int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,300,0,0,"_",16384,0,clrGreen);
      if(ticket<0)
        {
         Print("OrderSend завершилась с ошибкой #",GetLastError());
        }
      else
         Print("Функция OrderSend успешно выполнена");
      //--- 

     }

  }
//+------------------------------------------------------------------+
bool ExistOPNearMarket(string sy="",int op=-1,int mn=-1,int ds=1000000) 
  {
   int i,k=OrdersTotal(),ot;

   if(sy=="" || sy=="0") sy=Symbol();
   double p=MarketInfo(sy,MODE_POINT);
   if(p==0) if(StringFind(sy,"JPY")<0) p=0.0001; else p=0.01;
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
        {
         ot=OrderType();
         if((OrderSymbol()==sy) && (op<0 || ot==op)) 
           {
            if(mn<0 || OrderMagicNumber()==mn) 
              {
               if(ot==OP_BUY || ot==OP_BUYLIMIT || ot==OP_BUYSTOP) 
                 {
                  if(MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())<ds*p) return(True);
                 }
               if(ot==OP_SELL || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) 
                 {
                  if(MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))<ds*p) return(True);
                 }
              }
           }
        }
     }
   return(False);
  }
//+------------------------------------------------------------------+
 
Ich habe ein Problem mit der Migration von EAs, die Schaltflächen sind inaktiv geworden, ich kann nicht migrieren, hat jemand diese Erfahrung gemacht?
 
Aleksei Petrenko:
Ich habe ein Problem mit der Migration von EAs, die Schaltflächen sind inaktiv geworden, ich kann nicht migrieren, hat jemand diese Erfahrung gemacht?
 
Aleksei Petrenko:


 
Ghabo:

Hallo. Die Funktion gibt eine Flagge für das Vorhandensein einer Position oder eines Auftrags in Marktnähe zurück (Funktion im Forum gefunden). Für den Testcode sollte eine Position eröffnet werden, wenn ca. 200 Pips über und unter dem aktuellen Kurs keine Positionen vorhanden sind. Warum eröffnet er bei jedem Tick eine Position zu fast demselben Preis?

Überprüfen Sie die Anzahl der Parameter beim Aufruf von

ExistOPNearMarket(Symbol(),-1,200)

und seine Beschreibung

 
Galim_V:

Überprüfen Sie die Anzahl der Parameter beim Aufruf von

und seine Beschreibung

Ich danke Ihnen.
 
Ich habe eine binäre Bot auf Python, Frage: wie kann ich es ein Signal aus dem Roboter aus dem Terminal ohne Krücken senden?
 

Können Sie mir sagen, wie man die Sicherheiten für ein Geschäft berechnet?


Zwei Ansätze ausprobiert

(0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE)


Und diese hier

FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1);

 double val=AccountFreeMargin()-FreeMarginCheck;



Der erste gibt seltsame Ergebnisse auf EURJPY, wenn meine Einzahlungswährung USD ist. Muss ich der Formel etwas hinzufügen?

Die zweite funktioniert auch gelegentlich, manchmal mit korrekten Werten, manchmal mit irgendeinem Unsinn (es hängt von der Einzahlung ab)

Grund der Beschwerde: