Automatyczne ustawienie SL

O jezykach programowania w platformach i nie tylko.
mlody87
Gaduła
Gaduła
Posty: 192
Rejestracja: 14 cze 2012, 13:19

Automatyczne ustawienie SL

Nieprzeczytany post autor: mlody87 »

Hej!
Mam do Was pytanie. Chcialbym napisac skrypcik, ktory automatycznie ustawi mi SL np na 5 pipsow dla kazdej nowo otwartej pozycji. Moglby ktos mi pomoc ?
pozdrawiam!
Obrazek

Awatar użytkownika
rayzeel
Gaduła
Gaduła
Posty: 357
Rejestracja: 05 lis 2008, 14:47

Re: Automatyczne ustawienie SL

Nieprzeczytany post autor: rayzeel »

Wystarczy, że przejdziesz przez wszystkie pozycje pętlą i sprawdzisz, czy dana pozycja ma ustawionego SL (OrderStopLoss()>0). Jeżeli SL = 0, ustawiasz SL dla pozycji używając OrderModify(). Myślę, że takie rzeczy już tutaj są gdzieś opisane dokładniej.
Pozdrawiam.

Awatar użytkownika
Mustafa
Pasjonat
Pasjonat
Posty: 777
Rejestracja: 20 lip 2010, 10:54

Re: Automatyczne ustawienie SL

Nieprzeczytany post autor: Mustafa »

Kod: Zaznacz cały

double sl=5 * Point;
for(i = 0 ; i < OrdersTotal(); i ++){
    if(OrderSelect ( i, SELECT_BY_POS) == true){
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==997){  /// opcja!
        // SELL -------------------------------------------------------------------------------
        if(OrderType()==OP_SELL){
           if(OrderStopLoss()==0){ 
              set_sl = NormalizeDouble(OrderOpenPrice()+sl,Digits);
              if(!OrderModify(OrderTicket(),OrderOpenPrice(), set_sl, set_tp,0))
                  Print(OrderTicket()+" Error sell modify SL ",GetLastError());
           }
        }
        // Buy ---------------------------------------------------------------------------------
        if(OrderType()==OP_BUY){
           if(OrderStopLoss()==0){ 
              set_sl = NormalizeDouble(OrderOpenPrice()-sl,Digits);
              if(!OrderModify(OrderTicket(),OrderOpenPrice(), set_sl, set_tp,0)) 
                     Print(OrderTicket()+" Error buy modify SL ",GetLastError());
           }
        }
     }
}
Jeśli ma nie wybierać dla symbolu czy MagicNumber to wywalać i sprawdzić nawiasy.

w sumie można prościej

Kod: Zaznacz cały

double sl=5 * Point;
for(i = 0 ; i < OrdersTotal(); i ++){
    if(OrderSelect ( i, SELECT_BY_POS) == true){
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==997){  /// opcja!

         if(OrderStopLoss()==0){ 
             if(OrderType()==OP_SELL) set_sl = NormalizeDouble(OrderOpenPrice()+sl,Digits);
             if(OrderType()==OP_BUY)  set_sl = NormalizeDouble(OrderOpenPrice()-sl,Digits);
              if(!OrderModify(OrderTicket(),OrderOpenPrice(), set_sl, set_tp,0))
                  Print(OrderTicket()+" Error sell modify SL ",GetLastError());
         }
       }
    }
}
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.

hellshare
Uczestnik
Uczestnik
Posty: 1
Rejestracja: 28 paź 2012, 21:52

Re: Automatyczne ustawienie SL

Nieprzeczytany post autor: hellshare »

Trzymaj w załączniku osobno dla S, osobno dla L. Mam nadzieję, że pomogłem.

Pozdrawiam
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

ODPOWIEDZ