Spider EA

  • Автор темы Автор темы Godfather
  • Дата начала Дата начала

krezi

Активный участник
Order Modify Error 1
1. Ищем модификацию ордеров OrderModify, цикл

Код:
Expand Collapse Copy
   for (li_8 = 0; li_8 <= OrdersTotal(); li_8++) {
      OrderSelect(li_8, SELECT_BY_POS);
      if (OrderType() == OP_SELL && OrderComment() == ls_52 && OrderTakeProfit() != NormalizeDouble(ld_92 - Point * li_12, Digits) && OrderMagicNumber() >= li_28 - (Maxlayer - 1)) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(0, Digits), NormalizeDouble(ld_92 - Point * li_12, Digits), 0, Green);
      if (OrderType() == OP_BUY && OrderComment() == ls_52 && OrderTakeProfit() != NormalizeDouble(ld_108 + Point * li_12, Digits) && OrderMagicNumber() >= li_32 - (Maxlayer - 1)) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(0, Digits), NormalizeDouble(ld_108 + Point * li_12, Digits), 0, Green);
      if (HedgeOn == TRUE) {
         if (HedgeCloseStrategy == 1) {
            OrderSelect(li_8, SELECT_BY_POS);
            if (OrderType() == OP_SELL && OrderComment() == ls_60 && OrderStopLoss() != NormalizeDouble(ld_108 + Point * li_12, Digits)) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(ld_108 + Point * li_12, Digits), NormalizeDouble(0, Digits), 0, Green);
            if (OrderType() == OP_BUY && OrderComment() == ls_60 && OrderStopLoss() != NormalizeDouble(ld_92 - Point * li_12, Digits)) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(ld_92 - Point * li_12, Digits), NormalizeDouble(0, Digits), 0, Green);
         }
         if (HedgeCloseStrategy == 2) {
            OrderSelect(li_8, SELECT_BY_POS);
            if (OrderType() == OP_SELL && OrderComment() == ls_60 && OrderStopLoss() != NormalizeDouble(ld_108 + Point * li_12, Digits) && li_36 < HedgeCloseLayer) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(ld_108 + Point * li_12, Digits), NormalizeDouble(0, Digits), 0, Green);
            if (OrderType() == OP_SELL && OrderComment() == ls_60 && OrderStopLoss() != NormalizeDouble(ld_188, Digits) && li_36 >= HedgeCloseLayer) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(ld_188, Digits), NormalizeDouble(0, Digits), 0, Green);
            if (OrderType() == OP_BUY && OrderComment() == ls_60 && OrderStopLoss() != NormalizeDouble(ld_92 - Point * li_12, Digits) && li_40 < HedgeCloseLayer) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(ld_92 - Point * li_12, Digits), NormalizeDouble(0, Digits), 0, Green);
            if (OrderType() == OP_BUY && OrderComment() == ls_60 && OrderStopLoss() != NormalizeDouble(ld_204, Digits) && li_40 >= HedgeCloseLayer) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(ld_204, Digits), NormalizeDouble(0, Digits), 0, Green);
         }
      }
   }

2. Там где идёт проверка OrderTakeProfit() и OrderStopLoss()
Пишем:

NormalizeDouble(OrderTakeProfit(),Digits)
NormalizeDouble(OrderStopLoss(),Digits)

Ошибка будет заборота
 

marker1

Элитный участник
Заменил в восьми строчках, по прежнему медленно.
Насколько я помню, люди как то делают что раз в 10 ускоряется, но как х.з.
Опитимизировать его тоже нереально, поставил параметров по минимуму, оптится за год на всех тиках (прогонов вроде 1280) будет около 250 часов.Поэтому боты на всех тиках меня просто вымораживают:)
 
Последнее редактирование:

krezi

Активный участник
Я только нашёл усреднение в этом роботе интересное, всё остальное обычный мартин без умножения лота, который хэджирует по запросу.
 

marker1

Элитный участник
Я только нашёл усреднение в этом роботе интересное, всё остальное обычный мартин без умножения лота, который хэджирует по запросу.

А что там интересного с усреднением? Усреднение оно и есть усреднение)
 

marker1

Элитный участник
http://forexsystemsru.com/sovetniki/10012-sovetnik-macd-stoch-martingale-7.html#post430871 вот тут я тоже одну мартыху кручу верчу, там его переделали из всех тиков, сделали по ценам открытия часа, точность конечно падает я так подозреваю,но оптится за 10 минут) Только вот не пойму я нахера там столько инклудников. Конвертер бота из за них на джаву не хочет конвертировать.
 
Последнее редактирование:

krezi

Активный участник
а ну так это просто
после инт старт пишем такую вот шляпу:
if(Time[0]==time)
{ return(0);}
time = Time[0];
а в шапку робота пишем int time;
скорость подрастёт, НО будет открывать только одну сделку в бар.
 

marker1

Элитный участник
а ну так это просто
после инт старт пишем такую вот шляпу:
if(Time[0]==time)
{ return(0);}
time = Time[0];
а в шапку робота пишем int time;
скорость подрастёт, НО будет открывать только одну сделку в бар.
Ну там вроде так и сделали,я не кодер) Но да, сделку по закрытию бара совершает да и кроет тоже, исключение - тп.
А по поводу ускорения оптимизации, делают еще как то по тикам, что бы в разы оптимизация ускорялась, но не знаю как.
 

krezi

Активный участник
я наврал,
вот это ставим там где идёт
if(Time[0]==time)
{
return(0);
}
else
{
тра та та OrderSend OP_BUY OP_SELL
time = Time[0];
}
 

marker1

Элитный участник
Да нет, этого я переделывать не буду, он тут при депо 2800 (если начальное депо ставить 2000 и фиксированный лот 0,01) в августе 2011 года закрыл 50 ордеров, т.е при постоянном лоте 0,01 это по факту в работе 0,5 лота совокупно, многовато, да и работать он я так подозреваю должен все таки по всем тикам, но точно знаю есть способ ускорить процесс в 10 раз, Piratе на этом сайте, да и на своем это как то делал.
 
Последнее редактирование:

marker1

Элитный участник
А в октябре 2011 вообще 70 ордеров закрыл, мда, не хило, при депо 4000.
 

hoz

Активный участник
Хм. Вот тест с 2007 по 2008. Слил мгновенно.
Депо 10 000, лот 0.1. Включил хедж. Больше ничего не менял из настроек.




Мат. ожидание -86... :oops:
 

marker1

Элитный участник
Хм. Вот тест с 2007 по 2008. Слил мгновенно.
Депо 10 000, лот 0.1. Включил хедж. Больше ничего не менял из настроек.




Мат. ожидание -86... :oops:
Ага,есть такое, я с 01.01.2007 года тестить пытался, он 31 мая 2007 года уже все слил, депо было 5000, лот фиксированный 0,01, это жестоко))Хедж не включал. Но любой бот без переоптимизации - сольет. Нужно оптить 2007 год и смотреть как бы он с этими настройками прожил 2008 год, ну и так далее.Оптить по всем тикам его проблематично, по крайней мере на пятизнаке по всем тикам, не знаю как он себя на 4 знаке ведет,может быстрее.
 

marker1

Элитный участник
Кстати, за 2007 год у меня в тестере он идет гораздо быстрее,связываю это с тем что тогда не было пятизнака.
 

marker1

Элитный участник
Кстати хорошо что ты на дукасовских котирах прогоняешь.
 

hoz

Активный участник
Ага,есть такое, я с 01.01.2007 года тестить пытался, он 31 мая 2007 года уже все слил, депо было 5000, лот фиксированный 0,01, это жестоко))Хедж не включал. Но любой бот без переоптимизации - сольет. Нужно оптить 2007 год и смотреть как бы он с этими настройками прожил 2008 год, ну и так далее.Оптить по всем тикам его проблематично, по крайней мере на пятизнаке по всем тикам, не знаю как он себя на 4 знаке ведет,может быстрее.

Я, в последнее время, беру сову и гоню её в других годах.. где её не оптили. Если результаты более менее адекватные, то можно что-то с ней делать, а если сливает под таким наклоном как SpiderEA сделал в 2007.. то сразу в топку.:rolf:
 

rin2000

Прохожий
У кого-нибудь есть версия Spider EA 1.4? На офф. сайте пишут, что обновили...
 
Верх