Grundlegende Fragen ... - Seite 6

 
 

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,

Dateien:
 

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.

Dateien:
newtick.mq4  3 kb
 

Gibt es Bücher, Online-Tutorials oder Videos zum Schreiben von MQL4?

 

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_NONE 0

#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?