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
MTF RWI Trigger??
Wie würde ich für diese Indikatoren einen Kauftrigger für alle grünen und einen Verkaufstrigger für alle roten Werte programmieren? Bitte um Hilfe...
Nick,
EA für nur einmal pro Tick
Hallo Leute,
Ich weiß nicht, ob dies schon einmal gepostet wurde (mir fehlt die Geduld, Threads zu durchsuchen, sorry!), aber ich weiß, dass es schon oft gefragt wurde.
Dieser Code wird NUR einmal pro Tick ausgeführt. Er wird ausgeführt, sobald ein neuer Tick eingeführt wird, und nur dann, und funktioniert danach nicht mehr, bis ein weiterer auftritt.
Bitte bedenken Sie, dass dies manchmal ein Problem darstellen kann. Wenn Ihre Aufträge, aus welchen Gründen auch immer, nicht ausgeführt werden, wird die Funktion nicht erneut ausgelöst. Wenn Sie den Code entsprechend ändern wollen, nur zu. Ich würde etwas vorschlagen wie:
if order fails, fileseek to front of f, write Open[2] to f
Dadurch wird der nächste Tick als neuer Tick ausgegeben.
Gibt es Bücher, Online-Tutorials oder Videos zum Schreiben von MQL4?
https://www.mql5.com/en/forum/178427
https://www.mql5.com/en/forum/178677
https://www.mql5.com/en/forum
Hallo zusammen,
ich brauche Hilfe bei der Codierung dieser Aufgabe:
Basierend auf einem Tageschart:
a) Nehmen wir an, meine Bedingungen sind am Schluss von Tag # 1 erfüllt und nehmen wir an, Tag # ist der 9. Juni.
b) Nun möchte ich einen BUY-Stop und einen Sell-Stop auf dem High und Low beim Closing am Tag #2 oder Juni 10 platzieren.
c) Schließlich möchte ich, dass der Handel am Tag #3 ausgelöst wird.
Außerdem möchte ich, dass, wenn der LONG-Handel zuerst ausgelöst wird, der Sell-Stop geschlossen wird und umgekehrt.
Vielen Dank im Voraus für Ihre Hilfe.
Mit freundlichen Grüßen,
forexcel
EA für die Ernennung Tag einer Woche, und Zeit
Kennen Sie nicht den EA, mit dem Sie den Tag auswählen (z. B. nur Mittwoch und Donnerstag) und die Uhrzeit für die Öffnung und Schließung festlegen?
In vielen Fällen,
Ein Kurs steigt am Mittwoch und Donnerstag, da viele Menschen die SWAP zu bekommen.
Ich kaufe ihn zu diesem Zeitpunkt und gehe eine Position ein.
Und der Kurs fällt, sobald ein SWAP stattgefunden hat.
Ich verkaufe zu diesem Zeitpunkt und gehe eine Position ein.
Ich bin auf der Suche nach EA zu verwenden, wie dieser Handel.
Ich brauche Hilfe!
Hallo Leute,
ich brauche Hilfe. Ich habe diesen EA, den ich erstellt habe
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright "FxAttack"
#property link "http://www.ioinvesto.com"
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 0.1;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 25;
extern bool UseTakeProfit = True;
extern int TakeProfit = 25;
extern bool UseTrailingStop = False;
extern int TrailingStop = 30;
extern bool Use.Time.Filter = true;
extern string Server.Time.To.Start = "00:00";
extern string Server.Time.To.Stop = "17:00";
extern bool Not.Trade.Fri.Sun = True;
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
double OpenPrice = iOpen(NULL, PERIOD_D1, Current + 0);
double Buy_Sign = (OpenPrice + (30*Point));
double Sell_Sign = (OpenPrice - (30*Point));
double start_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Start);
double end_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Stop);
Comment("Open Price = ",OpenPrice);
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
if(Use.Time.Filter && (TimeCurrent() = end_time)) return(0);
if(Not.Trade.Fri.Sun && (DayOfWeek()==6 || DayOfWeek()==1 )) return(0);
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
if (Bid > Buy_Sign) Order = SIGNAL_BUY;
if (Ask < Sell_Sign) Order = SIGNAL_SELL;
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Buy Order", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Sell Order", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+[/PHP]
......but I don't understand how to put the code below inner it.
[PHP]...
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() )
return(0);
....Der letzte Code-Block, den ich geschrieben habe, lautet: "Wenn ein Auftrag für ein SYMBOL bereits eröffnet wurde, eröffne keine neuen Aufträge für dieses SYMBOL".
Kann mir jemand helfen, ihn zu integrieren?
Vielen Dank!
Mauro
EA macht nur einen Handel...
Hallo Leute, ich habe eine kurze Frage an euch. Ich habe vor kurzem einen EA erstellt. Die Parameter sind korrekt und als ich ihn zum Chart hinzufügte, platzierte er ein entsprechendes Kauf- und später ein Verkaufssignal. Aber das nächste Mal, als ein Kaufsignal kam, hat er nie einen Handel platziert. Es scheint, dass der EA nur den ersten Handel tätigt und danach keinen mehr. Haben Sie eine Idee, woran das liegen könnte? Ich wäre für jede Hilfe dankbar. Danke!!!
Vielleicht ist es eine gute Idee, die Ea zu zeigen? Damit wir uns den Code ansehen können?