Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 91
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
Sie müssen nach dem Preis sortieren, denn Sie können nicht nach der Größe suchen, das Raster kann mehrfach sein, und Sie finden entweder das größte oder das kleinste, aber nicht das erste oder das letzte
Ich meine die Funktion, die Marina gepostet hat.
Die letzte Reihenfolge wird durch die Zeit bestimmt.
Ich meine die Funktion, die Marina gepostet hat.
Die letzte Reihenfolge wird durch die Zeit bestimmt.
Denn ich rufe es so auf
Liebe Programmierer! Helfen Sie mir, diese Frage zu lösen. Der Expert Advisor geht einen Handel auf M15 ein, berücksichtigt aber auch die Bedingungen von H1. Wenn die Bedingungen auf H1 auf M15 erfüllt sind, kann es mehrere Einstiegspunkte geben. Das Problem ist, dass ich nur den ersten Einstiegspunkt verwenden möchte, bis die Bedingungen auf H1 umgekehrt sind.
k=0;
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) k++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && k==0 && opp != Time[0]) // Kauf
Liebe Programmierer! Helfen Sie mir, diese Frage zu lösen. Der Expert Advisor geht einen Handel auf M15 ein, berücksichtigt aber auch die Bedingungen von H1. Wenn die Bedingungen auf H1 auf M15 erfüllt sind, kann es mehrere Einstiegspunkte geben. Das eigentliche Problem ist, dass ich den ersten Einstiegspunkt begrenzen möchte, bis die Bedingungen auf H1 nicht ins Gegenteil geändert werden.
k=0;
for (i=BestellungenGesamt()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) k++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && k==0 && opp != Time[0]) // Kauf
Aber wie sieht es ohne den Code aus? Insbesondere ist der Code nicht klar.
Was genau wollen Sie? Nicht abstrakt, sondern genau das, was Sie erreichen wollen.
Liebe Programmierer! Helfen Sie mir, diese Frage zu lösen. Der Expert Advisor geht einen Handel auf M15 ein, berücksichtigt aber auch die Bedingungen von H1. Wenn die Bedingungen auf H1 auf M15 erfüllt sind, kann es mehrere Einstiegspunkte geben. Das Problem ist eigentlich, dass ich mich auf den ersten Einstiegspunkt beschränken möchte, während auf H1 die Bedingungen nicht ins Gegenteil umschlagen.
k=0;
for (i=BestellungenGesamt()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) k++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && k==0 && opp != Time[0]) // Kauf
Ein approximativer Algorithmus:
bool flagH1 = true;
bool flagM15 = true;
if(!flag && flagH1 && flagM15)
{
flag = true;
}
if(!flagH1 && flag)
flag = false;
Und ohne den Code? Ein Grund mehr, den Code nicht zu verstehen.
Was genau wollen Sie? Nicht abstrakt, sondern genau das, was Sie erreichen wollen.
extern double Lot= 0.1;
extern int stoploss=20;
extern int takeprofit=50;
// если stoploss и / или takeprofit = 0, то отключены.
//if stoploss and/or takeprofit = 0, are disconnected.
extern int Magic = 99999999;
// уникальный номер, кот. советник метит свои ордера и впоследствии работает только с ними. При постановке на разные графики или т/ф, межики должны быть разными
extern int Slipp = 1;
// величина максимально возможного проскальзывания.
// slippage
extern int sec = 2000;
// количество миллисекунд сна советника между повторами отправки торгового поручения в случае неудачи
// number of milliseconds sleep of the EA between repetitions of sending a trade assignment in case of failure
//============================= Stochastic
input int InpKPeriod=13; // K Period
input int InpDPeriod=3; // D Period
input int InpSlowing=3; // Slowing
//============================= Stochastic
input int InpKPeriod1=13; // K Period
input int InpDPeriod1=3; // D Period
input int InpSlowing1=3; // Slowing
int A, a, b, i, ii, o;
double SL, TP, op, stH0, stH1, stM0, stM1;
bool c;
datetime OldTime, Time0, opp;
int init()
{
OldTime = iTime(NULL,Period(),0);
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//====================================================================
stH0 = iStochastic(NULL,60,InpKPeriod,InpDPeriod,InpSlowing,MODE_EMA,1,MODE_MAIN,0);
stH1 = iStochastic(NULL,60,InpKPeriod,InpDPeriod,InpSlowing,MODE_EMA,1,MODE_MAIN,1);
stM0 = iStochastic(NULL,15,InpKPeriod1,InpDPeriod1,InpSlowing1,MODE_EMA,1,MODE_MAIN,0);
stM1 = iStochastic(NULL,15,InpKPeriod1,InpDPeriod1,InpSlowing1,MODE_EMA,1,MODE_MAIN,1);
//====================================================================
b=0;
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && b==0 && opp != Time[0]) // покупка
{
opp = Time[0];
RefreshRates();
op = Ask;
A = OrderSend (Symbol(), OP_BUY, Lot, Ask, Slipp, 0, 0, NULL, Magic, 0, Blue);
o = GetLastError();
while (A < 0 && o != 4109 && o != 132 && o != 133)
{
Print("Error =", o);
Sleep(sec);
RefreshRates();
op = Ask;
A = OrderSend (Symbol(), OP_BUY, Lot, Ask, Slipp, 0, 0, NULL, Magic, 0, Blue);
o = GetLastError();
}
SL = op-stoploss*Point;
if (stoploss == 0) SL = 0;
TP = op+takeprofit*Point;
if (takeprofit == 0 ) TP = 0;
if (SL != 0 || TP != 0)
{
RefreshRates();
if(OrderSelect (A, SELECT_BY_TICKET) == true) a = 0;
c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
o = GetLastError();
while (c == false && o != 4109 && o != 132 && o != 133)
{
Print("Error =", o);
Sleep(sec);
RefreshRates();
if(OrderSelect (A, SELECT_BY_TICKET) == true) a = 0;
c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
o = GetLastError();
} }
}
//---------------------------------------------------------------------------------------------------------+
b=0;
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
if( stM1 >= 80 && stM0 < 80 && stH0 < 30 && b==0 && opp != Time[0]) // продажа
{
opp = Time[0];
RefreshRates();
op = Bid;
A = OrderSend (Symbol(), OP_SELL, Lot, Bid, Slipp, 0, 0, NULL, Magic, 0, Red);
o = GetLastError();
while (A < 0 && o != 4109 && o != 132 && o != 133)
{
Print("Error =", o);
Sleep(sec);
RefreshRates();
op = Bid;
A = OrderSend (Symbol(), OP_SELL, Lot, Bid, Slipp, 0, 0, NULL, Magic, 0, Red);
o = GetLastError();
}
SL = op+stoploss*Point;
if (stoploss == 0) SL = 0;
TP = op-takeprofit*Point;
if (takeprofit == 0 ) TP = 0;
if (SL != 0 || TP != 0)
{
RefreshRates();
if(OrderSelect (A, SELECT_BY_TICKET) == true) a = 0;
c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
o = GetLastError();
while (c == false && o != 4109 && o != 132 && o != 133)
{
Print("Error =", o);
Sleep(sec);
RefreshRates();
if(OrderSelect (A, SELECT_BY_TICKET) == true) a = 0;
c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
o = GetLastError();
} }
}
return(0);
}
//+------------------------------------------------------------------+
Artyom Hallo! Das Ziel ist es, den Einstieg auf M15 auf eins (erstes Signal) zu begrenzen, solange es ein Signal auf H1 gibt.
Hallo, liebe Forumsmitglieder. Gibt es eine Möglichkeit, den Wert des in Metatrader4 eingebauten Trailing-Stops aus dem EA heraus zu setzen? Ich bin daran interessiert und nicht daran, dem EA einen Code für die Ausführung eines Trailing-Stops hinzuzufügen, der unabhängig vom eingebauten Trailing-Stop ist.
Vielen Dank im Voraus für die Antworten.
Hallo, liebe Forumsmitglieder. Gibt es eine Möglichkeit, den Wert des in Metatrader4 eingebauten Trailing-Stops aus dem EA heraus zu setzen? Ich bin daran interessiert und nicht daran, dem EA einen Code für die Ausführung eines Trailing-Stops hinzuzufügen, der unabhängig vom eingebauten Trailing-Stop ist.
Vielen Dank im Voraus für die Antworten.