![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
ein paar weitere Probleme
1. Eines der Dinge, die mir in den Ergebnissen aufgefallen sind, ist, dass, wenn ein Handel geöffnet wurde, kein weiterer geöffnet wird, bis der vorherige Handel abgeschlossen ist. Haben Sie eine Möglichkeit, das zu ändern?![](https://c.mql5.com/forextsd/smiles/nerd.png)
(bitte posten Sie eine zweite Datei mit den sich überschneidenden Geschäften, wenn Sie können, ich muss noch beide testen)
2. eine einfache Frage,
Wenn der Tester keine Ergebnisse anzeigt, wenn Sie ein Startguthaben von 500 oder 1000 eingeben, aber bei 3.000 oder mehr, was genau bedeutet das (bedeutet es, dass Sie bei den Geschäften mit einem so niedrigen Startguthaben bankrott gehen?)
Wie kommt man aus der Schleife heraus?!
Ich habe einige meiner eigenen Alarme hinzugefügt und endlich einige Erfolge erzielt, aber oft gerate ich in eine endlose Alarmschleife, und die einzige Möglichkeit, sie zu unterbrechen, ist, MT4 zum Schließen zu zwingen, wie kann ich dort eine Pause einfügen, oder gibt es eine Tastaturunterbrechung, die ich verwenden kann?
Vielen Dank für jede Hilfe bei meinen grundlegenden Fragen![](https://c.mql5.com/forextsd/smiles/mouth_closed.png)
Könnten Sie mir das zeigen...
Programmierung verwirrt mich immer noch...
Ich frage mich, ob Sie mich durch etwas sehr Grundlegendes führen und mir zeigen könnten, wie der Code sein sollte, damit dies geschieht...
Zwei gleitende Durchschnitte kreuzen sich... es wird eine Order mit einem Trailing Stop eingegeben...
extern double lots=1.0;
extern int MA1=1;
extern int MA2=5;
extern int trailingstop=8;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+Ich habe dieses Dienstprogramm verwendet und folgendes erstellt: ....
//| This MQL is generated by Expert Advisor Builder |
//| http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |
//| |
//| In no event will author be liable for any damages whatsoever. |
//| Use at your own risk. |
//| |
//| Please do not remove this header. |
//+------------------------------------------------------------------+
#property copyright "Expert Advisor Builder"
#property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = False;
extern double Lots = 1.0;
extern int Slippage = 0;
extern bool StopLossMode = False;
extern int StopLoss = 10;
extern bool TakeProfitMode = False;
extern int TakeProfit = 8;
extern bool TrailingStopMode = True;
extern int TrailingStop = 10;
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
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 Buy1_1 = iClose("EURUSD", PERIOD_M1, Current + 0);
double Buy1_2 = iMA("EURUSD", PERIOD_M1, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell1_1 = iClose("EURUSD", PERIOD_M1, Current + 0);
double Sell1_2 = iMA("EURUSD", PERIOD_M1, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//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(TrailingStopMode && 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(TrailingStopMode && 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 (Buy1_1 > Buy1_2) Order = SIGNAL_BUY;
if (Sell1_1 < Sell1_2) 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 (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", 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 (StopLossMode) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", 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);
}
//+------------------------------------------------------------------+Das Problem ist, dass es keine Ergebnisse liefert, wenn es im Strategietestprogramm ausgeführt wird.
Oh, ich habe es herausgefunden! Vielen Dank für Ihre Anleitung
Ich habe zwei einfache Fragen, die ich denke...
Wie kann ich die Heiken Ashi Kerzen Dicke von 5 standardmäßig anstelle von 3 sein? everytime ich ein neues Diagramm bringen sie zurück zu 3 gehen.
Außerdem, wie kann ich eine Markierung über oder unter der Kerze je nach Wert eines RSI-Indikators machen?
Ich verstehe etwas von Programmierung, aber ich kenne die Syntax nicht...also tue so, als ob ich nichts wüsste.![](https://c.mql5.com/forextsd/smiles/angel_smile.png)
Vielen Dank SO viel..wenn ich etwas entdecken, ich werde es posten![](https://c.mql5.com/forextsd/smiles/nerd.png)
PS, dass expert advisor builder ist NICE, gibt es und INDICATOR builder auch? das wäre erstaunlichIch habe nur den Heiken Ashi repariert.
Neu - Fragen - Brauche Hilfe
Ich bin neu in diesem Forum. Ich würde gerne wissen, ob mir jemand Informationen über den Wert der Elite-Sektion geben kann (abgesehen von dem Verkaufsgespräch mit praktisch keinen Informationen über den obigen Link).
Ich habe auch versucht, auf der Webseite, zu der mich der obige Link geführt hat, eine Frage zu stellen, aber das Formular zeigt immer wieder an, dass eines der Felder leer ist. Es handelt sich dabei um das Feld "Priorität", und in der Dropdown-Liste ist nichts zu finden (alles ist leer), und es gibt keine Möglichkeit, einen Wert in dieses Feld einzugeben. Ich kann also keine Fragen auf diese Weise einreichen.
DD
Hat noch jemand diese Erfahrung gemacht? Ich bin Backtesting mein System mit alpari Daten, würde ich Fehler 4107 ungültigen Preis und 131 ungültige Volumen erhalten. Die 4107 wurde generiert, weil der Preis, die es bekommt, ist wie 4 Dezimalstellen mehr als das Währungspaar. Ich bin überrascht, dass ich 4107 erhalte, da der Preis, den ich an OrderSend() übergebe, die vordefinierten Bid und Ask sind. Außerdem habe ich vor OrderSend() einen Comment(Bid, " ", Ask); hinzugefügt, um zu sehen, was Bid und Ask zurückgeben. Der Comment() hatte die richtige Dezimalpräzision, aber OrderSend() erzeugte immer noch den Fehler. Am Ende habe ich den Wert von Bid/Ask einer Variablen zugewiesen und diese mit NormalizeDouble() an OrderSend() übergeben, was funktioniert.
Allerdings erhalte ich immer noch die 131 und weiß nicht, wie man das umgehen kann.
PipChick, ich persönlich glaube nicht, dass es sich lohnt, in den Elite-Bereich zu gehen.
Neuling.
Ich kenne etwas C++, aber ich bin mit einigen sehr grundlegenden Code kämpfen.
Was ich will:
Der Preis ist 1,2788. Wenn er sich um 10 Pips nach oben bewegt, möchte ich kaufen. Wenn er sich um 10 Pips nach unten bewegt, möchte ich verkaufen.
Habe ich den richtigen Code?
OrderSend(Symbol(),OP_BUYSTOP,1,Ask+10*Punkt,Slippage,
(Ask+10*Point)-10*Point,
( Ask+10*Punkt)+200*Punkt, "Mein Auftragskommentar",0,0,Grün);
OrderSend(Symbol(),OP_SELLSTOP,1,Bid-10*Point,Slippage,
(Bid-10*Point)+10*Point,
(Bid -10*Point)-200*Point, "Kommentar zu meiner Order",0,0,Green);
Ich habe http://www.metatrader.info/node/34 gelesen, aber ich weiß nicht mehr weiter. Vielen Dank für Ihre Geduld.
Hallo!
Mein Problem: MT3,
Er funktioniert nicht. Warum eigentlich?
Danke, Bongo
sell=false;
buy=false;
if ((C[1]>O[1])<O[0]) then { buy=true; sell=false; }
if ((C[1]O[0]) then { sell=true; buy=false; }