Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 170

 
ponochka:
Hallo! Ich mache einen Screenshot des Bildschirms mit dieser Funktion:
WindowScreenShot ("Screenshotname.png",1280,720); aber es speichert alles im Ordner Files, und ich muss den Pfad in einem anderen Ordner angeben, in dem es gespeichert werden soll!
Symbolische Links verwenden
 

Hallo!

Ursprünglich war die Möglichkeit der Notfallsperre durch freie Marge im Expert Advisor implementiert.

wenn(AccountFreeMargin() <= inpMarginLock)

{

gv.isEmergencyLock = true;

.....................

Im Laufe der Zeit stellte sich heraus, dass dies nicht ganz bequem war.

Ich möchte eine Notfallsperre über die Inanspruchnahme einrichten.

D.h. bei Erreichen von, sagen wir, -100 Dollar auf der Kaution sollte die Sperre aktiviert werden.

Ich möchte um Hilfe bitten, wenn ich diesen Code anstelle vonAccountFreeMargin() hinzufügen kann, um Folgendes auszulösen

Helfen Sie mir, in den Code statt ofFreeMargin() zu schreiben, damit die Sperrung nicht bei freier Marge, sondern bei einem Drawdown auf die Einlage erfolgt.

Vielen Dank im Voraus!!!!!!!

 
Hallo, ich habe ein Problem, wenn ich F9 drücke, erhalte ich das übliche Menü, um einen Auftrag zu öffnen, aber ich muss ein Symbolpaar auswählen, nicht wie zuvor, das Menü erlischt für das Symbol, das ich geöffnet habe, raten Sie mir, wie man es beheben kann.
 
Andrey Sablin:
Hallo, ich habe ein Problem, wenn ich F9 drücke, erhalte ich das übliche Menü, um einen Auftrag zu öffnen, aber ich muss ein Symbolpaar auswählen, nicht wie zuvor, das Menü erlischt für das Symbol, das ich geöffnet habe, raten Sie mir, wie man es beheben kann.

Service --> Einstellungen --> Handel


 

Guten Tag)

Hilfe bitte, ich bin ein Neuling..... versuchen, einen EA auf der Kreuzung von Super-Signale-Kanal-Indikatoren und ZigZag machen fand eine Vorlage. Ich habe die Indikatoren eingefügt, aber die Aufträge lassen sich immer noch nicht öffnen. Hier ist ein Teil des Codes.... was mache ich falsch...?

void Signal(double& ar[][],bool& op[],bool& cl[])

{

int trd=-1;

double up=0.0,dn=0.0;

//---

ArrayInitialize(cl,false);

ArrayInitialize(op,false);

//ZigZag-Filteranzeige anschließen

up=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//Name, Einstellungen, Puffer, Startkerze für BUY

dn=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//Name, Einstellungen, Puffer, Beginn der Kerze für SELL

if(dn==EV) trd=0;

if(up==EV) trd=0; //Kommentar(trd);

//Umkehr- und Ausstiegsanzeige anschließen

up=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,0,0);//Startkerze für BUY

dn=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,1,0,0);//Startkerze für SELL

if(up>0.0 && up<EV) cl[1]=true;

if(dn>0.0 && dn<EV) cl[0]=true;

up=0,0;

dn=0,0;

// Basisindikator, mit dem wir den Markt betreten

Schalter(Indikator)

{

Fall SuperSignalsChannel:

up=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,1,0);//Startkerze für BUY

dn=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,0,0);//Startkerze für SELL

Pause;


P.S. Wenn es irgendwo im Forum einen ähnlichen Thread gibt, bitte Link hinterlassen

 


Guten Tag. Ich habe diesen EA, ich versuche, ihn an meine Bedürfnisse anzupassen, aber bisher ist er nicht sehr gut. Ich weiß, dass dies dafür verantwortlich ist, aber ich kann es nicht im Code anwenden. Ich hoffe auf Hilfe. Danke))))

//+------------------------------------------------------------------+
//|                                                 
//+------------------------------------------------------------------+


extern string TimeTrade  = "19:00";    // Время открытия позиции
extern int    DistanceSet    = 100;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;

int init(){   return(0);}
int deinit(){   return(0);}
int start()
{
   double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
   double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
   double pAsk=Ask+(DistanceSet)*Point;
  double pBid=Bid-DistanceSet*Point;

   if(Orders_Total( Magic_Number, Symbol()) == 0 )
   {
      //Установка ордеров
      if(TYPE<=0)
      {
         // Здесь установим STOP-ордера
         if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
            OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
         else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
         if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
            OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
         else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
      }
      if(TYPE>=1)
      {
         // Здесь установим LIMIT-ордера
         if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
            OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
         else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
         if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
            OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
         else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
      }
   }
   return(0);
}


//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
   int num_orders=0;
   for(int i= OrdersTotal()-1;i>=0;i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber() == mn && sym==OrderSymbol())
         num_orders++;
   }
   return(num_orders);
}



 
Aleksandr SHablevskiy:


Guten Tag. Ich habe diesen EA, ich versuche, ihn an meine Bedürfnisse anzupassen, aber bisher ist er nicht sehr gut. Ich weiß, dass dies dafür verantwortlich ist, aber ich kann es nicht im Code anwenden. Ich hoffe auf Hilfe. Danke))))




extern string TimeTrade  = "19:00";    // Время открытия позиции

extern int    DistanceSet    = 100;

extern int    DistanceStopOrder    = 5;

extern int    DistanceLimitOrder   = 5;

extern int TYPE = 0;

extern int TP = 50;

extern int SL = 4500;

extern double lot = 0.1;

extern int Magic_Number = 639713;


int init(){   return(0);}

int deinit(){   return(0);}

int start()

{

   double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;

   double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

   double pAsk=Ask+(DistanceSet)*Point;

   double pBid=Bid-DistanceSet*Point;


   if(Orders_Total( Magic_Number, Symbol()) == 0 )

   {

      //Установка ордеров

      if(TYPE<=0)

      {

         // Здесь установим STOP-ордера

         if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)

            OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);

         else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");

         if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)

            OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);

         else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");

      }

      if(TYPE>=1)

      {

         // Здесь установим LIMIT-ордера

         if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)

            OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);

         else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");

         if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)

            OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);

         else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");

      }

   }

   return(0);

}



//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//

int Orders_Total( int mn, string sym)

{

   int num_orders=0;

   for(int i= OrdersTotal()-1;i>=0;i--)

   {

      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

      if(OrderMagicNumber() == mn && sym==OrderSymbol())

         num_orders++;

   }

   return(num_orders);//---

   

  }

//+------------------------------------------------------------------+



 
Lehfr:

extern string TimeTrade  = "19:00";    // Время открытия позиции

extern int    DistanceSet    = 100;

extern int    DistanceStopOrder    = 5;

extern int    DistanceLimitOrder   = 5;

extern int TYPE = 0;

extern int TP = 50;

extern int SL = 4500;

extern double lot = 0.1;

extern int Magic_Number = 639713;


int init(){   return(0);}

int deinit(){   return(0);}

int start()

{

   double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;

   double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

   double pAsk=Ask+(DistanceSet)*Point;

   double pBid=Bid-DistanceSet*Point;


   if(Orders_Total( Magic_Number, Symbol()) == 0 )

   {

      //Установка ордеров

      if(TYPE<=0)

      {

         // Здесь установим STOP-ордера

         if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)

            OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);

         else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");

         if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)

            OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);

         else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");

      }

      if(TYPE>=1)

      {

         // Здесь установим LIMIT-ордера

         if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)

            OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);

         else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");

         if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)

            OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);

         else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");

      }

   }

   return(0);

}



//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//

int Orders_Total( int mn, string sym)

{

   int num_orders=0;

   for(int i= OrdersTotal()-1;i>=0;i--)

   {

      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

      if(OrderMagicNumber() == mn && sym==OrderSymbol())

         num_orders++;

   }

   return(num_orders);//---

   

  }

//+------------------------------------------------------------------+



Vielen Dank, lieber Mann, alles funktioniert))))
 

Guten Tag, bitte sagen Sie einem jungen Adepten, wo der Hund begraben ist))

Ich habe Momentum ein wenig verändert, getestet und es sieht so aus, als ob es funktioniert, aber wenn ich versuche, es in einem Expert Advisor zu verwenden, erhalte ich einen seltsamen Mist, es scheint dem richtigen Algorithmus zu folgen, aber ich weiß nicht, woher die zusätzlichen 0,0449 kommen.

input int InpMomPeriod=1; // Momentum Periode

void OnTick()

{

double High1 = iCustom(Symbol(),PERIOD_CURRENT, "INdekators 1.0",InpMomPeriod,0,0);

}

Dateien:
GBPUSDH11.png  16 kb
GBPUSDH1.png  16 kb
 

Hallo, liebe Programmierer.
Großes Lob an Sie!

Es gibt einen EA, der nach dem Schließen von Aufträgen und dem Senden einer Nachricht,

Ich muss den automatischen Handel auf dem Terminal deaktivieren (drücken Sie die Taste )

Dies ist nicht der Fall, wenn die Verbindung zwischen dem Benutzer und dem UPN-Server unterbrochen ist.
Wenn der Benutzer mit dem cps-Server verbunden ist und das Terminal geöffnet ist, sind Fenster geöffnet,
der Expert Advisor läuft, das Drücken der Taste funktioniert einwandfrei
aber wenn Sie den Expert Advisor ausführen, trennen Sie die Verbindung zum PPS-Server
und nachdem ich eine Meldung erhalten habe, dass Expert Advisor funktioniert
wenn Sie zur UPU zurückkehren, ist die Taste nicht gedrückt.

Der Expert Advisor läuft auf dem UPP-Server Windows Server 16.

Dieser Teil des Codes ist für diese Funktion verantwortlich

if(AutotradeOFF)PressOrReleaseAutotrade();

Fazit - diese Funktion funktioniert nicht, wenn der Benutzer nicht mit dem VPS-Server verbunden ist.
Vielleicht gibt es Alternativen, um das Problem zu lösen?

Woran kann das liegen?

Bitte helfen Sie mir, dieses Problem zu lösen.

Der Code ist beigefügt.

Vielen Dank im Voraus für jede Hilfe bei der Lösung dieses Problems!

Dateien: