Fragen Sie! - Seite 51

 
pawang:
Hallo

Es tut mir sehr leid, wenn meine Frage sehr einfach ist.

Ich lerne gerade mql4.

Bitte helfen Sie mir, wie man diese mathematischen Bedingungen in mql4 ausdrückt:

IF( (A>B) AND (|X| <1) AND (Y<Z) ) then... ... ... ...

|X| ist absoulut; das bedeutet (X 1)

Ich habe eine Meldung von MetaEditor erhalten

" IF-AUSDRUCK IST ZU KOMPLEX"

Nach vielen Versuchen,... Ich habe keine Idee mehr...Also bitte sagen Sie mir, wie man..

Danke

Versuchen Sie dies:

if((a>b && MathAbs(x)<1) && y<z)

{

//schreibe hier was passieren soll

}

 

Frage an das Orakel...

Gibt es eine Möglichkeit, Ihren EA eine Optimierung durchführen zu lassen und die Einstellungen automatisch jeden Tag anzupassen.

Ich würde gerne eine 30-Tage-Gewinnfaktor-Optimierung für 16 Parameter ausführen. und haben es nur die Einstellungen anwenden, bevor die es wieder den Handel beginnt. Es schaltet sich automatisch jeden Tag für etwa 8 Stunden. dies wäre eine perfekte Zeit, um es zu laufen ...

Weiß jemand, wie man das programmiert? Es würde ihn von der großen EA-Ebene auf die wahnsinnig profitable KI-Ebene bringen...

Dies könnte auch ein guter Code sein, den jeder in seinen EAs verwenden kann, denn die Märkte passen sich ständig an, warum sollten unsere EAs nicht intelligenter werden?

Ich habe dies auch im EA-Fourm gepostet, wusste aber bis jetzt nichts von diesem Code.

Vielen Dank für Ihre Hilfe.

 

Ratschläge bitte

Ist es möglich, Bar-Indikatoren in separaten Fenstern zu erstellen, wie der Indikator in dem Bild, das ich gepostet habe [ich weiß nicht, wie sie offiziell genannt werden], z.B. einen roten Balken, wenn der MACD negativ kreuzt und rot bleibt, wenn er sich in negativen Zonen befindet, und grün, wenn er positiv kreuzt usw. usw. Auch ist es möglich, die gleichen bar Indikator-Fenster für sagen wir, wenn der Preis geht unter einem gleitenden Durchschnitt zu erstellen.

Wenn das eine blöde Frage ist, bitte ich um Nachsicht mit mir. Wenn ich mir Indikatoren auf einem Chart ansehe, neige ich dazu, zu versuchen, zu antizipieren, was der Preis tun wird, also möchte ich versuchen, separate Fensterindikatoren zu haben, die, wenn sie alle die gleiche Farbe zeigen, ich handeln werde. [Psychologische Gründe]. Ist die Erstellung dieser separaten Bar-Typ-Indikatoren etwas, das ich lernen könnte, zu erstellen, im weit von einem Programmierer in jeder Sprache.

Jeder Ratschlag wäre mir sehr willkommen.

dh

Dateien:
chart.jpg  11 kb
 
pawang:
Hallo

Es tut mir sehr leid, wenn meine Frage sehr einfach ist.

Ich lerne gerade mql4.

Bitte helfen Sie mir, wie ich diese mathematischen Bedingungen in mql4 ausdrücken kann:

IF( (A>B) AND (|X| <1) AND (Y<Z) ) then... ... ... ...

|X| ist absoulut; das bedeutet (X 1)

Ich habe eine Meldung von MetaEditor erhalten

" IF-AUSDRUCK IST ZU KOMPLEX"

Nach vielen Versuchen,... Ich habe keine Idee mehr...Also bitte sagen Sie mir, wie man..

Danke

if(a>b && (x 1) && y<z){

;Ihr Code

}

oder vielleicht x == 0 anstelle von (x 1), denn nur so ist MathAbs(x) < 1 wahr, wenn x=0

http://docs.mql4.com/basis/operations/bool

andererseits brauchst du vielleicht einfach dies:

if(a>b && x<1 && y<z)

oder dies

if(a>b && x<-1 && y<z)

da x nach deiner Definition niemals 0 oder -1 ist

Ich bin verwirrt von deiner Definition des absoluten Wertes

 
dxx:
Ist es möglich, Balkenindikatoren in separaten Fenstern zu erstellen, wie den Indikator auf dem Bild, das ich gepostet habe [ich weiß nicht, wie sie offiziell heißen], z.B. einen roten Balken, wenn der MACD negativ kreuzt und rot bleibt, wenn er sich in negativen Zonen befindet, und grün, wenn er positiv kreuzt usw. usw. Ist es auch möglich, die gleichen Bar-Indikator-Fenster für, sagen wir, wenn der Preis unter einen gleitenden Durchschnitt geht zu erstellen.

wenn dies scheint eine dumme Frage bitte mit mir zu tragen. Wenn ich auf Indikatoren auf einem Diagramm neige ich dazu, zu versuchen und zu antizipieren, was der Preis zu tun, so im suchen, um zu versuchen und haben separate Fenster-Indikatoren, die, wenn alle zeigen die gleiche Farbe, die ich handeln wird. [Psychologische Gründe]. Ist die Erstellung dieser separaten Bar-Typ-Indikatoren etwas, das ich lernen könnte, zu erstellen, im weit von einem Programmierer in jeder Sprache.

Jeder Ratschlag wäre mir sehr willkommen.

dh

Ja, das ist möglich.

 
dxx:
Ist es möglich, Balkenindikatoren in separaten Fenstern zu erstellen, wie der Indikator in dem Bild, das ich gepostet habe [ich weiß nicht, wie sie offiziell heißen], z.B. einen roten Balken, wenn der MACD negativ kreuzt und rot bleibt, wenn er sich in negativen Zonen befindet, und grün, wenn er positiv kreuzt usw. usw. Ist es auch möglich, die gleichen Bar-Indikator-Fenster für, sagen wir, wenn der Preis unter einen gleitenden Durchschnitt geht zu erstellen.

wenn dies scheint eine dumme Frage bitte mit mir zu tragen. Wenn ich auf Indikatoren auf einem Diagramm neige ich dazu, zu versuchen und zu antizipieren, was der Preis zu tun, so im suchen, um zu versuchen und haben separate Fenster-Indikatoren, die, wenn alle zeigen die gleiche Farbe, die ich handeln wird. [Psychologische Gründe]. Ist die Erstellung dieser separaten Bar-Typ-Indikatoren etwas, das ich lernen könnte, zu erstellen, im weit von einem Programmierer in jeder Sprache.

Jeder Rat wäre sehr willkommen.

dh

Hier sind Sie genau das, was Sie wollen, laden Sie alle 4 der gleichen Indikator auf einem Diagramm alle mit unterschiedlichen Einstellungen wie unten gezeigt, wenn alle rot verkaufen, wenn alle blau kaufen.

Einstellungen

Setzen Sie den ersten für 15 Minuten

zweite 30 Minuten

dritte 60 Minuten

vierte 140 Minuten

Dateien:
 

danke

Leute, danke, ich werde die geposteten Indikatoren untersuchen#

sehr geschätzt

 

Wäre es möglich, eine Art von Indikator zu schreiben, der konstante Tick-Charts oder konstante Bereichsbalken in einem anderen Fenster anzeigt? Dies sind verschiedene Formen der Diagrammerstellung, die nicht zeitbasiert sind. Ein 100-Tick-Balken wird zum Beispiel immer dann gebildet, wenn sich der Kurs um 100 Ticks bewegt. Bei geringem Volumen wird also kein Balken gebildet. Ein konstanter Bereichsbalken wird immer dann gebildet, wenn sich der Kurs eine bestimmte Anzahl von Ticks in einem Bereich bewegt. Zum Beispiel wird ein Range-Bar mit einem Wert von 20 immer dann gebildet, wenn der Kurs einen Bereich von 20 Pips ausfüllt. Dann wird der nächste Balken gestartet. Da diese nicht zeitbasiert sind, bin ich nicht sicher, ob dies auf dieser Plattform möglich ist.

 

EA einen einfachen Alarm hinzufügen

Hallo, hoffe, die kleine Hilfe, die ich brauche hier zu finden! können Sie mir zeigen, wie man einen Alarm für diese EA zum Beispiel hinzufügen? nur, wenn die Bedingungen für den Kauf erfüllt sind, es auch alarmiert mich.

Vielen Dank dafür,

Leo

extern int MagicNumber = 0;

extern bool SignalMail = False;

extern bool EachTickMode = False;

extern double Lots = 1.0;

extern int Slippage = 3;

extern bool StopLossMode = True;

extern int StopLoss = 30;

extern bool TakeProfitMode = True;

extern int TakeProfit = 60;

extern bool TrailingStopMode = True;

extern int TrailingStop = 30;

#define SIGNAL_NONE 0

#define SIGNAL_BUY 1

#define SIGNAL_SELL 2

#define SIGNAL_CLOSEBUY 3

#define SIGNAL_CLOSESELL 4

int BarCount;

int Aktuell;

bool TickCheck = False;

//+------------------------------------------------------------------+

//| Experten-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init() {

BarCount = Bars;

if (EachTickMode) Current = 0; sonst Current = 1;

return(0);

}

//+------------------------------------------------------------------+

//| Experten-Deinitialisierungsfunktion |

//+------------------------------------------------------------------+

int deinit() {

return(0);

}

//+------------------------------------------------------------------+

//| Experten-Startfunktion |

//+------------------------------------------------------------------+

int start() {

int Auftrag = SIGNAL_NONE;

int Gesamt, Ticket;

double StopLossLevel, TakeProfitLevel;

if (EachTickMode && Bars != BarCount) TickCheck = False;

Total = OrdersTotal();

Auftrag = SIGNAL_NONE;

//+------------------------------------------------------------------+

//| Variable Begin |

//+------------------------------------------------------------------+

double Buy1_1 = iMA(NULL, 0, 89, 0, MODE_SMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iClose(NULL, 0, Current + 0);

double Buy2_1 = iMA(NULL, 0, 445, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iClose(NULL, 0, Current + 0);

//+------------------------------------------------------------------+

//| Variablenende |

//+------------------------------------------------------------------+

//Position prüfen

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) {

//Schließen

//+------------------------------------------------------------------+

//| Signal Begin(Exit Buy) |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Signal Ende(Beenden Kaufen) |

//+------------------------------------------------------------------+

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;

fortfahren;

}

//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;

fortfahren;

}

}

}

} sonst {

//Schließen

//+------------------------------------------------------------------+

//| 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;

weiter;

}

//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;

fortfahren;

}

}

}

}

}

}

//+------------------------------------------------------------------+

//| Signal Begin(Entry) |

//+------------------------------------------------------------------+

if (Buy1_1 < Buy1_2 && Buy2_1 < Buy2_2) Order = SIGNAL_BUY;

//+------------------------------------------------------------------+

//| Signal Ende |

//+------------------------------------------------------------------+

//Kaufen

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Prüfen der freien Marge

if (AccountFreeMargin() < (1000 * Lots)) {

Print("Wir haben kein Geld. Freie Marge = ", AccountFreeMargin());

return(0);

}

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; sonst StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; sonst 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("Fehler beim Öffnen der BUY-Order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Verkaufen

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Prüfen der freien Marge

if (AccountFreeMargin() < (1000 * Lots)) {

Print("Wir haben kein Geld. Freie Marge = ", AccountFreeMargin());

return(0);

}

if (StopLossMode) StopLossLevel = Bid + StopLoss * Point; sonst StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfit * Point; sonst 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("Fehler beim Öffnen der SELL-Order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

//+------------------------------------------------------------------+

 

Dank & andere Fragen

Vielen Dank für die Beantwortung meiner Frage.

newdigital, Kalenzo,asmdev

Und danke für alle

Das ist meine nächste Frage.

1.) Wie vergleicht man einen Wert von etwas, das passiert und passiert ist

zum Beispiel, wenn "n" ist jetzt, die Variable der Zeit, n-a = "a" Zeit vor jetzt.

Wie vergleicht man den Wert des RSI, wenn er in (n-a) und RSIn(now) passiert ist.

oder wie vergleicht man den MA50 für drei Bar vor jetzt und den letzten Bar?

2.) Gemäß Punkt 1.) ist der eigentliche Fall... wie erzeugt man eine bullish/bearish Divergenz?

Wenn die Bedingungen: Es gibt einen höchsten Preis und den höchsten RSI eines bestimmten Zeitrahmens. Und dann nach der Zeit läuft ... treffen wir einen neuen höchsten Preis, aber nicht von neuen RSI's hoch gefolgt (RSI scheitern, ein neues Hoch zu machen).

Wir alle wissen, diese Situation ist eine hohe Realibilität Verkaufssignal, und Kaufsignal ist die invers, so dass ich meine EA weiß, dass es.

Nochmals vielen Dank.

Grund der Beschwerde: