Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 170
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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!
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.
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))))
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);//---
}
//+------------------------------------------------------------------+
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);//---
}
//+------------------------------------------------------------------+
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);
}
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!