
myślę, że to obejmuje również to o czym napisałeś.
Ale powtarzam, że to tylko baza dla programistów, wszelkie modyfikacje i udoskonalenia pozostawiam zainteresowanym.
pzdr.
Kod: Zaznacz cały
//profit target
if(AccountEquity()>(AccountBalance()+ProfitTarget)
)
{
CloseOrders(magicnumber);
return(0);
}
Zapamiętujesz najwyższy stan kapitału i jeśli zejdzie o X to zamykasz wszystko i zapamiętujesz nowy stan kapitału i jak otworzysz pozycje to znów to samo.JAREK67 pisze:Macie jakies pomysły?
tez tak kombinowałem, ale ja tego nie napiszę, za cienki ze mnie programista. Mógłbyś pomóc?Tig3r pisze:Zapamiętujesz najwyższy stan kapitału i jeśli zejdzie o X to zamykasz wszystko i zapamiętujesz nowy stan kapitału i jak otworzysz pozycje to znów to samo.JAREK67 pisze:Macie jakies pomysły?
Znikąd pomocyJAREK67 pisze:tez tak kombinowałem, ale ja tego nie napiszę, za cienki ze mnie programista. Mógłbyś pomóc?Tig3r pisze:Zapamiętujesz najwyższy stan kapitału i jeśli zejdzie o X to zamykasz wszystko i zapamiętujesz nowy stan kapitału i jak otworzysz pozycje to znów to samo.JAREK67 pisze:Macie jakies pomysły?
Ykee pisze:// --- TrailingStop procentowy
(w odpowiedzi na http://www.forex.nawigator.biz/dyskusje ... php?t=8325 )Oczywiście musimy do czegoś ten procent wyliczyć, więc w złożonym zleceniu otwarcia musi być jakiś TP...Kod: Zaznacz cały
... if((OrderType() == OP_BUY) && (Bid > (OrderOpenPrice() + TS_ActivatedLevel*Point))){ double exec_perc = ((High[0] - OrderOpenPrice()))/(OrderTakeProfit()-OrderOpenPrice()); // --- stosunek ceny (Bid) do TP double ts_lev = NormalizeDouble((OrderOpenPrice() + ((High[0] - OrderOpenPrice())*exec_perc),MarketInfo(OrderSymbol(),MODE_DIGITS); // -- stosunek ceny (Bid) do Ceny otwarcia... if(OrderStopLoss() < ts_lev){ OrderModify(OrderTicket(), OrderOpenPrice(), ts_lev, OrderTakeProfit(), OrderExpiration(), Gold); } } if((OrderType() == OP_SELL) && (Ask < (OrderOpenPrice() - TS_ActivatedLevel*Point))){ double exec_perc = ((OrderOpenPrice() - Low[0]))/(OrderOpenPrice() - OrderTakeProfit()); double ts_lev = NormalizeDouble((OrderOpenPrice() - ((OrderOpenPrice()-Low[0])*exec_perc),MarketInfo(OrderSymbol(),MODE_DIGITS); if(OrderStopLoss() > ts_lev){ OrderModify(OrderTicket(), OrderOpenPrice(), ts_lev, OrderTakeProfit(), OrderExpiration(), Gold); } }