|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Buystop und Sellstop an horizontalen Linien
Hallo zusammen,
ich habe Dank traderdoc und next user es nun geschafft das meine beiden horizontalen Linien auf dem Chart zu sehen sind und sich auch nach oben und unten verschieben lassen. Als nächstes möchte ich lernen, wie kann ich gleichzeitig eine Buystop und Sellstop Order an die "obereLinie" bzw "untereLinie" setzen. Habe gelesen - probiert und studiert - aber komme nicht mehr weiter. Ist offenbar für einen Neueinsteiger vllt doch eine Nummer zu groß. Trotzdem möchte ich es gerne lernen, würde auch gerne Unterricht nehmen - vllt wäre traderdoc oder next user bereit (gegen Bezahlung natürlich) einem Oldie wie mir ein paar Stunden zu geben. Und bis hier bin ich - denke ist etwas Chaos drin - Danke[HTML]//setze Lotgroesse double LotGroesse=0.01; void OnTick() { // finde den hoechsten Preis fuer 30 Kerzen double HighestPrice = High[iHighest(NULL,0,MODE_HIGH,30,0)]; // Erstelle eine horizontales Linien-Objekt fuer Hoechstpreis ("ObereLinie") ObjectCreate("ObereLinie",OBJ_HLINE,0,0,HighestPri ce); // Setze die Objektfarbe ObjectSetInteger(0,"ObereLinie",OBJPROP_COLOR,clrG old); // Setze Linienbreite ObjectSetInteger(0,"ObereLinie",OBJPROP_WIDTH, 3); // finde den niedrigsten Preis fuer 30 Kerzen double LowestPrice = Low[iLowest(NULL,0,MODE_LOW,30,0)]; // Erstelle ein horizontales Linien-Objekt fuer Niedrigstpreis ("UntereLinie) ObjectCreate("UntereLinie",OBJ_HLINE,0,0,LowestPri ce); // Setze die Objektfarbe ObjectSetInteger(0,"UntereLinie",OBJPROP_COLOR,clr Gold); // Setze Linienbreite ObjectSetInteger(0,"UntereLinie",OBJPROP_WIDTH,3); // automatische Order aufgeben mit TP und SL // Wenn aktueller Preis groesser oder gleich Hoechstpreis if (Close[0] >= HighestPrice) // Wenn keine offenen Orders existieren if (OrdersTotal()==0) { // Kaufe LotGroesse zum Askpreis, 3 Punkte Toleranz,Stop 300 Punkte unter Bid, Take Profit 150 Punkte ueber Ask int buyticket = OrderSend(Symbol(),OP_BUY,LotGroesse,Ask,3,(Bid-300*_Point),(Ask+150*_Point),NULL,NULL,0,Green); } // Wenn aktueller Preis kleiner oder gleich Niedrigstpreis if (Close[0] <= LowestPrice) // Wenn keine offenen Orders existieren if (OrdersTotal()==0) { // Verkaufe LotGroesse zum Bidpreis, 3 Punkte Toleranz,Stop 300 Punkte ueber Ask, Take Profit 150 Punkte unter Bid int sellticket = OrderSend(Symbol(),OP_SELL,LotGroesse,Bid,3,(Ask+3 00*_Point),(Bid-150*_Point),NULL,NULL,0,Green); } //+------------------------------------------------------------------+ HTML-Code:
input double Magic = 1111; //Magic Number double LotSize; int ticket1; // L 0.01 int ticket2; // S 0.01 //--- //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---Erkenne "obereLinie" und "untereLinie" int total=OrdersTotal(); t=0; for(int i=total-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS); int type=OrderType(); if(( OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic)) { switch(type) { case OP_BUY : t=1; case OP_SELL : t=1; case OP_BUYLIMIT : t=1; case OP_BUYSTOP : t=1; case OP_SELLLIMIT : t=1; case OP_SELLSTOP : t=1; } } } if(t<1) { //Öffne gleichzeitig zwei Pending Orders double t1 = Ask + PipsAway * Point; //BuyStop Entry Punkt double t2 = Bid - PipsAway * Point; //SellStop Entry Punkt // ticket1 = OrderSend( Symbol(),OP_BUYSTOP,LotSize,t1, Slippage,sl1,tp1,Magic,0,White); ticket1 = OrderSend( NULL,OP_BUYSTOP,0.01,t1,3,25,10,NULL,0,0,White); ticket2 = OrderSend( Symbol(),OP_SELLSTOP,LotSize,t2, Slippage, sl2,tp2,Magic,0,White); } return(0); } |
|
|||
Guten Abend,
es gibt Broker, bei denen die Marketorder erst ohne SL und TP gesetzt werden muss. Ist diese erfolgreich gesetzt, wird anschließend SL und TP per OrderModify hinzugefügt. |
Lesezeichen |
Stichworte |
buystop, horizontale linien, linien, mql4, programmierung, programmierung metatrader, programmierung mql4, sellstop |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|