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
Ich möchte einen EA schreiben, der diesen Advanced ADX-Indikator verwendet... Wie kann ich den Wert und die Farbe aus dem Indikator extrahieren...
Kaufen
ADX Farbe grün und (ADX diese Stunde> ADX vorherige Stunde)
Verkaufen
ADX Farbe rot und (ADX diese Stunde< ADX vorherige Stunde)
Ich habe abit in Kodierung auf meinem eigenen ausprobiert. Stimmt die Kodierung mit meiner Regel???
thx
sonic
for (i = Bars - 205; i >= 0; i --)
{
double adx1 =iCustom(NULL, 0, "Advanced_ADX",13,0,i);
double adx2 =iCustom(NULL, 0, "Advanced_ADX",13,1,i);
if ((adx1>adx2)&&(adx1 > adx1) // BUY
{ BUY routine}
if ((adx1<adx2)&&(adx1 < adx1) // SELL
{ SELL routine}
}ICustom Indikator EA
//+------------------------------------------------------------------+
//| 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. |
//| |
//| |
//+------------------- DO NOT REMOVE THIS HEADER --------------------+
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#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 = True;
extern double Lots = 0.2;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 27;
extern bool UseTakeProfit = True;
extern int TakeProfit = 34;
extern bool UseTrailingStop = False;
extern int TrailingStop = 30;
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 = iOBV(NULL, 0, PRICE_LOW, Current + 0);
double Buy1_2 = iCustom(NULL, 0, "synthetic_", 22, 0, Current + 0);
double Sell1_1 = iOBV(NULL, 0, PRICE_HIGH, Current + 0);
double Sell1_2 = iCustom(NULL, 0, "synthetic_", 22, 0, 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(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 (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 (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, "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 (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, "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);
}
//+----------------------------------------------------------------hallo
dies ist meine Strategie
double Buy1_1 = iOBV(NULL, 0, PRICE_LOW, Current + 0);
double Buy1_2 = iCustom(NULL, 0, "synthetic_", 22, 0, Current + 0);
double Sell1_1 = iOBV(NULL, 0, PRICE_HIGH, Current + 0);
double Sell1_2 = iCustom(NULL, 0, "synthetic_", 22, 0, Current + 0);
ich möchte, dass wenn mein benutzerdefinierter Indikator die obv-Linie überschreitet, der Markt verkauft oder gekauft wird
aber
es funktioniert nicht
was ist falsch in dem Code ?_
2-farbig indi
Hallo zusammen,
Das indi am unteren Rand (Complex_Pairs1) hat nur eine Farbe. Könnte mir jemand helfen und es stattdessen in 2 Farben ändern. Blau für aufwärts, und Rot für abwärts. Genau wie die Indi auf dem Chart (Execute Line).
Ich habe mich sehr bemüht, den Code selbst zu ändern, aber ohne Erfolg.
Nach dem Kompilieren gab es keine Fehler, aber es passiert nichts, wenn ich versuche, das indi zu öffnen.
Dies ist wahrscheinlich ein Kinderspiel für alle erfahrenen Programmierer, und hoffentlich kann ich daraus lernen.
Ich danke euch!
Klondyke
Suche nach einem Dokument oder einem Forumsthread?
Hallo, ich habe versucht, für ein Benutzerhandbuch oder ein Forum-Thread in Google auf, wie man einen benutzerdefinierten Indikator in einem Experten Plotten suchen. Ich möchte eigentlich eine Info, wie man die iCustom Funktion besser nutzen kann und ein paar Beispiele .... Vielen Dank im Voraus!
Ich habe Ihr Thema in den iCustom Funktionsthread verschoben.
Ich hoffe, Sie werden alles finden.
Sehen Sie sich auch diesen Beitrag an https://www.mql5.com/en/forum
Ich habe den Punkt verstanden, danke Leute!
weiß jemand, wie man zu mQL ea hinzufügen
den Zickzack-Indikator mit der icustom-Funktion hinzufügen kann.
Ich habe versucht
double x = iCustom(NULL,PERIOD_M5, "ZigZag",3,0,0);
aber ich erhalte eine Vielzahl von Zahlen in meiner Druckfunktion.
Ich habe auch eine Reihe von Zahlen ausprobiert.
Für jede Hilfe bin ich dankbar.
Weiß jemand, wie man mQL ea hinzufügen kann?
den Zickzack-Indikator mit der Funktion icustom.
Ich habe versucht
double x = iCustom(NULL,PERIOD_M5, "ZigZag",3,0,0);
aber ich erhalte eine Vielzahl von Zahlen in meiner Druckfunktion.
Ich habe auch eine Vielzahl von Zahlen ausprobiert.
jede Hilfe ist willkommen.Eine Möglichkeit ist: iCustom(NULL,0, "ZigZag",depth,deviation,backstep,0,1)
zigzag
hey ajk....... zigzag unterscheidet sich von den meisten Indikatoren dadurch, dass sein Wert in den meisten Fällen 0 ist und nur gelegentlich eine Zahl ungleich Null....., was ihn in der Standardform von iCustom fast unbrauchbar macht.....
// ---> zig = iCustom(NULL,0, "ZigZag",15,5,3, 0, i);
Um nützlich zu sein, müssen Sie fast sicher ein Array erstellen, um alle "Nicht-Null"-Zahlen zu speichern..... wie;
if(zig>0)
{
zag[n] = zig;
}
dann können Sie das Übliche tun
if(zag[1] > zag[2]) // dies tun
sonst // oder
if(zag[1] < zag[2]) // dies tun
//------------
Es gibt noch ein bisschen mehr, aber das ist die Grundidee.....h
Brauche Hilfe
Hallo..
ich habe den Univeral MA Cross EA gefunden..
es ist ein schöner EA..