Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Buystop und Sellstop an horizontalen Linien (http://www.expert-advisor.com/forum/showthread.php?t=6078)

Neueinsteiger 06.04.18 07:47

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);
  }


Raul0 10.04.18 23:23

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.

Neueinsteiger 14.04.18 10:30

Vielen Dank


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:12 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum