Fragen Sie! - Seite 145

 

Webdienstaufruf mit MQL

Weiß jemand, wie man externe Webdienste von einem Expert Advisor aus aufrufen kann?

 
 

Ich denke, das ist etwas Grundlegendes, ich weiß nur nicht, wie ich darauf zugreifen kann. Kann mir jemand sagen, wie ich den täglichen Eröffnungs-/Schlusskurs von vor einigen Tagen abrufen kann, auch wenn ich mich in einem anderen Chart als dem täglichen befinde? Es wäre hilfreich, wenn Sie einen Beispielcode zur Verfügung stellen könnten.

Vielen Dank

ET

 

Suchen Sie in der MetaEditor-Hilfe nach iopen und iclose

Lux

 
luxinterior:
Schauen Sie in der MetaEditor-Hilfe nach iopen und iclose Lux

Vielen Dank, es hat geklappt...

ET

 

Anfrage zur Codekorrektur

Hallo,

Ich versuche, den beigefügten Indikator zu modifizieren, um folgendes zu erreichen:

1) das Startdatum mit der Farbe1 übereinstimmen zu lassen. Im Moment zeichnet der Indikator die zweite Farbe (Farbe2) der Serie auf das Startdatum und nicht die erste

2) Ausgabe des Datums, der Farbe, des Eröffnungs-, Hoch-, Tiefst- und Schlusskurses jeder gezeichneten Linie der Serie. Die Datei würde angehängt werden, sobald neue Daten verfügbar sind.

Ich danke Ihnen im Voraus für Ihre Hilfe.

Mit freundlichen Grüßen,

Dateien:
 

Tiefstwert berechnen/höheren Zeitrahmentrend verwenden/Spread-Problem vermeiden

Ich versuche, einige Beispiele für eine Kodierung zu finden, die die folgenden Anforderungen erfüllen könnte:

Um die Platzierung eines Stops zu berechnen, würde ich gerne eine Kodierung sehen, die dem EA für jeden gegebenen Zeitrahmen das NIEDRIGSTE TIEFSTEN (oder das höchste HÖCHSTEN) während der letzten X Anzahl von Balken mitteilt... und dann diesen Preis abzüglich (oder zuzüglich im Falle des höchsten HÖCHSTEN) X Anzahl von Pips verwendet, um ein Stop-Level zu setzen.

Damit eine neue Order für einen kurzen Zeitrahmen in dieselbe Richtung wie der Trend eines größeren Zeitrahmens platziert werden kann, würde ich gerne eine Codierung sehen, die es ermöglicht, dass neue Orders auf dem kurzen Zeitrahmen-Chart NUR in dieselbe Richtung wie der Trend des größeren Zeitrahmen-Charts platziert werden können. Ein einfaches Beispiel: Nehmen wir an, ein EA, der an ein 15-Minuten-Diagramm angehängt ist, möchte eine Kauforder auf das Kreuzen des MA1 über den MA2 platzieren (mit einem Stop, der wie in der vorherigen Frage bei 5 Pips unter dem niedrigsten Tief der letzten 5 Balken platziert wird), ABER ich suche nach einer Kodierung, die diese neue Order nur dann platziert, wenn auf dem Ein-Stunden-Diagramm für dasselbe Paar der aktuelle Kurs über (oder unter, im Falle eines Verkaufs) einem MA der Periode X liegt.

Um falsche Eröffnungen/Schließungen von Aufträgen aufgrund ungewöhnlich breiter Spreads zu vermeiden, würde ich gerne eine Codierung sehen, die eine Auftragsaktion nur auf der Grundlage des GESCHLOSSENEN des aktuellen (oder sogar vorherigen) Balkens auslöst, anstatt ausgelöst zu werden, während ein Balken noch offen ist. Bei IBFX zum Beispiel habe ich Spreads gesehen, die normalerweise 5 Pips betragen und oft bis zu 20 Pips breit sind (einmal habe ich sogar 53 Pips gesehen!). Es scheint, dass solche weiten Spreads oft eine neue Order eröffnen, weil sich die MA's während der Bildung des Balkens vorübergehend gekreuzt haben... aber zum Zeitpunkt, als der Balken geschlossen wurde, hatten sie sich NICHT gekreuzt, was dazu führte, dass ich eine Kauforder hatte, die nicht gewünscht war!

Für Code-Beispiele zur Lösung dieser Probleme wäre ich sehr dankbar.

 
Dateien:
 

Lieber Coderguru,

Es ist vielleicht die einfachste Arbeit in der Codierung, um die Farbe zu ändern....... Ich bin nicht in der Lage, es zu tun............

Ändern Sie einfach die Unterstützung in einer Farbe und Widerstand in einer anderen Farbe dieses Codes.......

Hier sind Widerstand und Unterstützung in einer ähnlichen Farbe.....................

Und die Objekte werden nicht gelöscht, wenn der Indikator gelöscht wird.............

Vielen Dank im Voraus.............

Dateien:
 

Hilfe bei Trailling Stop / 1 Risiko oder Position M

Hallo zusammen,

ich habe versucht, im Forum eine Lösung für mein Problem zu finden:

Am Anfang meines EA:

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars),((BBupper-BBlower)/(Ask-lowestof10bars))*1000,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid),((BBupper-BBlower)/(highestof10bars-Bid))/100,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

Ich hoffe jemand kann mir bei diesem Problem helfen!!!!! Vielen Dank an alle.