Приветствую!!!
Вчера была пятница…
Без рекламы алкоголя скажу что под (цензура) на кукурузе в коктейле с (цензура) на кактусе голова не болит, но и мыслей теперь нет то же…
Вообще надо как то вычеркнуть что ли пятницу…
Вот раньше было как Красиво: месяц из трёх недель причём совсем недавно даже ещё при Пушкине и никто не жаловался! Был понедельник, вторник, среда, четверг, пятница, суббота, воскресенье, восьмица и неделя. Но кому то вот большие выходные не понравились с пятницы аж до понедельника!.. Наверно пора и пятницу туда-же. Да… Были времена… Это с пятницы субботу, воскресенье, восмицу и неделю отдыхали… Если так начать в пятницу то в понедельник на работу точно уже и не надо! )
Как ни крути, ну вот во всём виновата только пятница.
Зато Герчика подколол в его день рождения )))). Типа ну, раз ни как матом с людьми говорить не разучишься, то приезжай в Питер учится красиво говорить матом. Ну и говна наслушался прямо на вебинаре… Ни хочу короче больше никуда. Мат — зло, даже питерский Большой Бан на три часа ни разу не повторяясь. Зачем его придумали?
Ну кажется с мыслями собрался.
Вот хорошо так начинать с предыстории. Охват оставшихся мыслей из того что осталось… Да… А осталось не много.
У меня есть советник и мучаю его наверно года три-четыре. Версия ломаная, ломал не я, не я и его делал. Не шедевр конечно, и до моего самого знаменитого Франк_уд, где до создания франк тогда был самой маловолатильной валютой и «уд» означало «на удаление», далековато конечно… И не я виноват, что теперь после этого во франк никто не лезет, и она самая непредсказуемая валюта…
Итак что мне нужно? Ну, по желанию, конечно, если не сложно немного изменений в скрипт.
// вставляется прямо в формулу ОН_Тик
count=0;// обнуление параметров
stl=0;
stb=0;
ltl=0;
ltb=0;
lb=0;
tl=0;
op_srb=0;
op_srl=0;
prb=0;
mtb=0;
mlb=0;
prl=0;
mtl=0;
mll=0;
lt=0;
pr=0;
for( i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) // пересчёт параметров
{
count++;
if(OrderType()==4) stb++;
if(OrderType()==5) stl++;
if(OrderType()==2) ltb++;
if(OrderType()==3) ltl++;
if(OrderType()==0) {lb++;prb+=OrderProfit()+OrderCommission()+OrderSwap();mtb+=OrderLots(); op_srb+=OrderOpenPrice();}
if(OrderType()==1) {tl++;prl+=OrderProfit()+OrderCommission()+OrderSwap();mtl+=OrderLots(); op_srl+=OrderOpenPrice();}
// ----- трал позиций
if (lb>0&&tl==0)
{
if(OrderType()==OP_BUY)
{
if((OrderStopLoss()<(Bid-TrailingMStop*Point)) || (OrderStopLoss()==0))
{
mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
Sleep (100);
}
}}
if (lb==0&&tl>0)
{
if(OrderType()==OP_SELL)
{
if((OrderStopLoss()>(Ask+TrailingMStop*Point)) || (OrderStopLoss()==0))
{
mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Yellow);
Sleep (100);
}
}}
}
}
}
lt=mtb+mtl; pr= prb+prl; // подсчёт прибыли/убытка
if(lt!=0)tt=(pr/lt/10); //Print("tt",tt,"=(pr",pr,"/lt",lt);
if(tt>Profit ||-tt>Loss)
{
CloseAll(); //закрытия ордеров
// DelOrder();
}
}
Этот код значительно облегчает оптимизацию и прогон советника, если код вставлен в ядро логики, так как больше не идёт пересчёт ордеров и вызова функции ОрдерСелект. Ну, у меня как то так…
А нужно в этот код вставить следующую логику: Если есть ордер «Вверх», если сетка ордеров «Вверх» в «минусе», если цена ниже на «Н» пунктов от последнего ордера сетки «Вверх», если бар(1) не меньше «Х» пунктов, если цена ниже максимума бара(1), то выставляем стоп_покупку. Для ордеров «Вниз» наоборот.
Как то так наверно…
Если придумаю как ещё выставлять первый ордер, то куплю себе (вырезано цензурой) или наоборот. Короче кофе на минералке не помогает… Ох уже эта пятница…
За помощь всем спасибо.
П.С. Статься писалась два часа. Ушёл в магазин…
Комментарии (0)
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий