skrypt z predefiniowanym poziomem TP i SL

O jezykach programowania w platformach i nie tylko.
tpsarro
Bywalec
Bywalec
Posty: 6
Rejestracja: 26 maja 2010, 17:18

skrypt z predefiniowanym poziomem TP i SL

Nieprzeczytany post autor: tpsarro »

cześć ludzie, od 20 minut przeszukuje to forum i google i nie mogę znaleźć jednej linijki kodu. Najgorsze jest to że wiem, iż to jest gdzies na tym forum bo kiedyś to miałem.

Chodzi mi o dosłownie jedną linijkę kodu, taki skrypt w którym wpisuję wartość lota, i ilość pipsów dla TP i SL. Przypisuję skrót klawiszowy dla skryptu BUY i dla skryptu Sell i potem tylko wciskam np ALT+S i otwiera mi się automatycznie zlecenie sprzedaży określonej wcześniej ilości lotów ze zdefiniowanym już poziomem TP i SL. Nic nie musze wpisywać. Wiem że gdzieś to tutaj jest bo tego używałem, ale sformatowałem komputer i straciłem te skrypty. Pomóżcie jeśli możecie.

NightWalker
Bywalec
Bywalec
Posty: 8
Rejestracja: 21 lip 2011, 18:03

Re: skrypt z predefiniowanym poziomem TP i SL

Nieprzeczytany post autor: NightWalker »

Poniżej masz skrypt, który otwiera zlecenie BUY, nie pokazując zapytania o wartości i stawiając SL 2 punkty poniżej Low ostatniej lub bieżącej świecy (w zależności od tego, który niżej). Skrypt nie jest głupotoodporny, tzn nie sprawdza czy SL nie jest za blisko ceny rynkowej. Skrypt jest kompatybilny z ECN/STP - to znaczy najpierw otwiera zlecenie, potem ustawia SL. Raczej nie do stosowania w czasie burzy na rynku.

Kod: Zaznacz cały

//#property show_inputs

extern double Lots = 1;
extern string Note="NightWalker HalfAutomate";

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  { 
         double StopLoss = Low[1]-2*Point;
         if (StopLoss > Low[0]-2*Point) StopLoss = Low[0]-2*Point;
         
         int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,Note,0,0,Green);
         if (ticket>0)
         { 
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
            {
               OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),NULL, Blue);
               Print("Long order opened : ",OrderOpenPrice());
            }
         }
         else 
            Print("Error opening Long order : ",GetLastError());
   return(0);
  }
//+------------------------------------------------------------------+
Tutaj analogiczny dla SELL.

Kod: Zaznacz cały

//#property show_inputs

extern double Lots = 1;
extern string Note="NightWalker HalfAutomate";

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  { 
         double StopLoss = High[1]+2*Point;
         if (StopLoss < High[0]+2*Point) StopLoss = High[0]+2*Point;
         
         int ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,Note,0,0,Red);
         if (ticket>0)
         { 
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
            {
               OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),NULL, Red);
               Print("Short order opened : ",OrderOpenPrice());
            }
         }
         else 
            Print("Error opening Short order : ",GetLastError());
   return(0);
  }
//+------------------------------------------------------------------+
NightWalker

tpsarro
Bywalec
Bywalec
Posty: 6
Rejestracja: 26 maja 2010, 17:18

Re: skrypt z predefiniowanym poziomem TP i SL

Nieprzeczytany post autor: tpsarro »

nie to nie to ale chyba znalazłem

int start() {

OrderSend(Symbol(),OP_SELL,0.05,Bid,3,Ask+30*Point,Bid-20*Point);

return(0);
}


dobry kod?
jak wstanę po potestuję na rachunku demo ale to chyba było to

tpsarro
Bywalec
Bywalec
Posty: 6
Rejestracja: 26 maja 2010, 17:18

Re: skrypt z predefiniowanym poziomem TP i SL

Nieprzeczytany post autor: tpsarro »

dobra znalazłem ten skrypcik używałem go kiedyś dla otwierania zleceń skrótami klawiszowymi z predefiniowanymi poziomami TP i SL:

Kod: Zaznacz cały

OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-30*Point,Ask+20*Point); 
i to fajnie wszystko działało do puki miałem cenę EUR/USD pokazaną do czwartego miejsca po przecinku czyli np 1,3025 odkąd broker wprowadził piąte miejsce po przecinku skrypt przestał działać. W dzienniku pokazuje mi :

script BUY EURUSD,M30: loaded successfully
script BUY EURUSD,M30: removed

czy wie ktoś może jak sprawić żeby skrypt znów działał? Założę się że to musi być bardzo proste
pozdrawiam
Tomasz Palka

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Re: skrypt z predefiniowanym poziomem TP i SL

Nieprzeczytany post autor: Pierz Andrzej »

dodaj jedno 0 do 30 ;)

zamiast 30 * Point zrób 300 * Point
z poważaniem
Andrzej Pierz
FOREX-SERVICE

tpsarro
Bywalec
Bywalec
Posty: 6
Rejestracja: 26 maja 2010, 17:18

Re: skrypt z predefiniowanym poziomem TP i SL

Nieprzeczytany post autor: tpsarro »

zrobiłem tak i nadal nic. Ten cały slippage z 3 pipsów tez zrobiłem 30 na wszelki wypadek i nie działa. Nie wiem co się stało.

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Re: skrypt z predefiniowanym poziomem TP i SL

Nieprzeczytany post autor: Pierz Andrzej »

bo najprawdopodobniej broker jest typu ECN/STP , więc nie można złożyć zleceń po cenie rynkowej z ustawionym zabezpieczniem.
u takich brokerów należy najpierw złożyć zlecenie a dopiero potem je modyfikować .

tak jak to jest w przykładzie kolegi NightWalker
z poważaniem
Andrzej Pierz
FOREX-SERVICE

tpsarro
Bywalec
Bywalec
Posty: 6
Rejestracja: 26 maja 2010, 17:18

Re: skrypt z predefiniowanym poziomem TP i SL

Nieprzeczytany post autor: tpsarro »

ja mam rachunek w XTB, orientujesz się może czy to jest broker tpyu ECN/STP. No pewnie jest tak jak mówisz, to że kiedyś ten skrypt działał bez problemu to nie znaczy że teraz będzie działał, założyli blokadę i dziękuję.

ODPOWIEDZ