konkretnie chodzi mi o trailingstop który obecnie rusza jak tylko zlecenie wychodzi na plus utrzymując określoną odległość, ja bym chciał aby ruszał w chwili gdy cena jest ponad określoną wartość trail ale liczoną od otwarcia zlecenia a nie od SL i tu może to proste ale coś mi nie wychodzi.
Kod: Zaznacz cały
if(OrderStopLoss()>0 || default_sl_level>0) {
if(ObjectFind("lvoe_sl_" + OrderTicket())==-1) {
if(OrderStopLoss()==0) {
ObjectCreate("lvoe_sl_" + OrderTicket(),OBJ_HLINE,0,Time[0],OrderOpenPrice()-orderDir(OrderType())*default_sl_level*Point);
} else {
ObjectCreate("lvoe_sl_" + OrderTicket(),OBJ_HLINE,0,Time[0],OrderStopLoss());
}
ObjectSet("lvoe_sl_" + OrderTicket(),OBJPROP_COLOR,sl_color);
ObjectSet("lvoe_sl_" + OrderTicket(),OBJPROP_STYLE,sl_style);
if(default_trailing_stop>0) {
ObjectSetText("lvoe_sl_" + OrderTicket(),"#"+OrderTicket()+" stop loss, ts="+default_trailing_stop,11);
} else {
ObjectSetText("lvoe_sl_" + OrderTicket(),"#"+OrderTicket()+" stop loss",11);
}
} else {
int tspos=StringFind(ObjectDescription("lvoe_sl_"+OrderTicket()),"ts=");
if(tspos!=-1) {
int ts=StrToInteger(StringSubstr(ObjectDescription("lvoe_sl_"+OrderTicket()),tspos+3));
if(OrderType()==OP_BUY) {
if(Bid-OrderStopLoss()>ts*Point) { //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ObjectSet("lvoe_sl_"+OrderTicket(),OBJPROP_PRICE1,Bid-ts*Point);
}
}
if(OrderType()==OP_SELL) {
if(OrderStopLoss()-Ask>ts*Point) { //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ObjectSet("lvoe_sl_"+OrderTicket(),OBJPROP_PRICE1,Ask+ts*Point);
}
}
}
Kod: Zaznacz cały
if(OrderType()==OP_BUY) {
if(Bid-OrderOpenPrice()>ts*Point) { //<<<<<<<<<<<<<<<<<<<<<< tu zmieniłem <<<<<<<
ObjectSet("lvoe_sl_"+OrderTicket(),OBJPROP_PRICE1,Bid-ts*Point);
}
}
if(OrderType()==OP_SELL) {
if(OrderOpenPrice()-Ask>ts*Point) { //<<<<<<<<<<<<<<<<<<<<<< tu zmieniłem <<<<<<<
ObjectSet("lvoe_sl_"+OrderTicket(),OBJPROP_PRICE1,Ask+ts*Point);