Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
/*[[ Name := PST Author := Cyber Link := pr10@ukr.net Lots := 0.10 Stop Loss := 30 Take Profit := 60 Trailing Stop := 0 ]]*/ Defines: HL(85),N(9),Zapas(5); //HL- разница между экстремальными ценами, N- период, Zapas- запас в выставлении отложенного ордера var:s(0),b(0),ho(0),lo(0),i(0),fl(0); // s- количество отложенных OP_sellSTOP b- количество отложенных OP_BUYSTOP, i- переменная цикла // ho- мах цена периода, lo-минимальныя цена периода, fl-флаг для выставления второго ордера If((CurTime-LastTradeTime)<11) then Exit; // 10 сек таймаут, пока он не прошел будет осуществляться выход из эксперта if fl=1 then // т.к. одновременно два ордера поставить нельзя, OP_sellSTOP ставится после 10 сек, с помощью флага {fl=0; // обнуление флага и выставление 2го отложенного SetOrder(OP_sellSTOP, lots, lo-Zapas * point, 3,lo +StopLoss * Point, lo-TakeProfit*Point, red);}; b=0; // обнуление переменных для счета s=0; if TotalTrades=1 then exit; // если открыт только 1 ордер то, это ордер в рынке, выходим if totaltrades<>0 then for i=1 to TotalTrades Begin IF OrderValue(i,VAL_TYPE)=OP_BUYstop then b=b+1; // подсчет позиций в цикле if OrderValue(i,VAL_TYPE)=OP_SELLstop then s=s+1; if (s+b)=2 then exit; // если 2 отложенных выходим end; if TotalTrades<>0 and (s+b)=1 then // если 1 отложенный остался (он лишний, т.к. один уже стал сыграл, удаляем его { for i=1 to TotalTrades Begin if (OrderValue(i,VAL_TYPE)=OP_sellSTOP) or (OrderValue(i,VAL_TYPE)=OP_buySTOP) then DeleteOrder(OrderValue(i,VAL_TICKET),blue); //удаление end; exit;}; if TotalTrades=0 and (b+s)=0 then { // нахождение минимальной, максимальной цены ho=h[1]; lo=l[1]; for i=n DownTo 1 Begin if h[i]>ho then ho=h[i]; if l[i]<lo then lo=l[i]; end; }; if TotalTrades=0 and (b+s)=0 and (ho-lo)<Hl*point then { // если открытых позиций нет и условия выполняется то // то выставлять 2 ордера fl=1; SetOrder(OP_BUYSTOP,lots,ho+Zapas*point,3,ho-StopLoss*Point,ho+TakeProfit*Point,blue); // 1й из 2х };