Автор Тема: Простая пробойная система по двум валютам  (Прочитано 16783 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ПиарщикАвтор темы

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 488
  • +109/-4
    • Просмотр профиля
На форуме StrategyBuilder опубликована несложная, но прибыльная стратегия торговли:

Действия проводятся в 10.00 CET (9 GMT, 12 МСК) и в 14.00 CET (13 GMT, 16 МСК)

В 10.00 определяем диапазон High-Low 06.00 CET – 10.00 CET по EUR/USD и GBP/USD
В 14.00 определяем диапазон High-Low 10.00 CET – 14.00 по EUR/USD и GBP/USD

Ставим BuyStop по High +5 пипсов и SellStop по Low -5 пипсов на обоих валютных парах

Ставим тейк-профит на вход +80 пипсов для EUR/USD и на вход +120 пипсов для GBP/USD
Ставим стоп-лосс на вход -50 пипсов для EUR/USD и на вход -70 пипсов для GBP/USD.

Если уровень второй стороны прорыва лежит ближе 50 пипсов для EUR/USD или 70 пипсов для GBP/USD, то стоп-лосс выставляется на этот уровень (Вверх: стоп-лосс = Low -5 пипсов = SellStop; Вниз: стоп-лосс = High +5 пипсов = BuyStop).

Передвигаем стоп-лосс в точку безубыточности, когда EUR/USD прошла в нашу сторону на 30 пипсов, а GBP/USD показал прибыль 40 пипсов.

Если по открытой позиции сработал стоп-лосс, а цена прорывает вторую сторону диапазона, то открываем новую позицию, согласно выставленному ордеру - разворачиваемся. Допускается только один разворот на один диапазон.

В 24.00 CET все ордера снимаются, а открытые позиции закрываются по рынку. В пятницу все это производится в 23.00 CET.

Результаты в октябре 2005 года:
10/03 : -22 пипсов
10/04: -61 пипсов
10/05: -103 пипсов
10/06: +168 пипсов
10/07: +156 пипсов
10/10: +135 пипсов
10/11: +61 пипсов
10/12: +108 пипсов
10/13: +97 пипсов
10/14: +274 пипсов
10/17: +178 пипсов

Всего за 11 дней: +991 пипсов

Результаты в 2005 году:
Март: +721 пипсов
Апрель: +940 пипсов
Май: +296 пипсов
Июнь: +857 пипсов
Июль: +1352 пипсов
Август: +35 пипсов
Сентябрь: -20 пипсов
Октябрь: +1825 пипсов
Ноябрь: +554 пипсов
Декабрь: +345 пипсов
Возгласы типа «Система галимая!» или «Где ты такие системы отстойные берешь!» - не отзывы, а бытовое хамство. Хамам – бан пожизненно!

Оффлайн mandor

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 116
  • +21/-12
    • Просмотр профиля
Если уровень второй стороны прорыва лежит ближе 50 пипсов для EUR/USD или 70 пипсов для GBP/USD, то стоп-лосс выставляется на этот уровень (Вверх: стоп-лосс = Low -5 пипсов = SellStop; Вниз: стоп-лосс = High +5 пипсов = BuyStop).
Не совсем понятно. Например, для ордера Buy, открытого в первый диапазон. Сравниваюся High первого и второго диапазона. Стоп-лосс сдвигается если который High больше? И куда сдигается стоп-лосс: на Low - 5 пипсов или High +5 пипсов второго диапазона?

Если по открытой позиции сработал стоп-лосс, а цена прорывает вторую сторону диапазона, то открываем новую позицию, согласно выставленному ордеру - разворачиваемся. Допускается только один разворот на один диапазон.
Что имеется в виду? Снова выставляется отложенный ордер в первую сторону?
По настоящему человек раскрывается только на операционном столе © Херург

Оффлайн ПиарщикАвтор темы

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 488
  • +109/-4
    • Просмотр профиля
Как я понимаю, диапазоны и позиции по ним работают независимо друг от друга. Т.е., не нужно сравнивать "High первого и второго диапазона".

Фраза "Если уровень второй стороны прорыва лежит ближе 50 пипсов для EUR/USD или 70 пипсов для GBP/USD, то стоп-лосс выставляется на этот уровень" означает, что по условиям стоп-лосс выставляется на 50 п для евро, но вполне может случиться, что диапазон МЕНЬШЕ 50 пипсов - в этои случае и стоп будет ближе - на 5 пипсов дальше противоположной границы. Другими словами, если мы ставим ордер на покупку выше хая диапазона, а ширина этого диапазона меньше 50 пипсов, то стоп ставится на 5 п ниже лоу того же самого диапазона.

"Допускается только один разворот на один диапазон." - означает, что, когда мы выставили два ордера (сверху и снизу), то при прорыве диапазона в любую сторону позиция будет открыта. Но, если цена вернулась в диапазон, а потом пробила его в другую сторону, то открытая позиция закроется по стоп-лоссу, а откроется новая, в противоположном направлении. Это и называется разворотом.
Возгласы типа «Система галимая!» или «Где ты такие системы отстойные берешь!» - не отзывы, а бытовое хамство. Хамам – бан пожизненно!

Оффлайн Oligarh

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 126
  • +12/-3
    • Просмотр профиля
"Действия проводятся в 10.00 CET (9 GMT, 12 МСК) и в 14.00 CET (13 GMT, 15 МСК)"

Здесь у вас апшипочка, исправте на 16 МСК вместо 15. И кажись это та же самая стратегия что вы уже здесь публиковали. Только называлась она "Комбинированная break-out система со среднемесячным профитом 600 пипсов".
Меня интересует еще один вопросик. Как быть с переходом на летнее и зимнее время. Будут ли сдвигаться определяемые Hi и Low ?
Спасибо.

Оффлайн ПиарщикАвтор темы

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 488
  • +109/-4
    • Просмотр профиля
Исправил, спасибо. С переходом на летнее время, по видимому, надо экспериментировать.
Возгласы типа «Система галимая!» или «Где ты такие системы отстойные берешь!» - не отзывы, а бытовое хамство. Хамам – бан пожизненно!

Оффлайн vadimtt

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 10
  • +1/-0
    • Просмотр профиля
Поясните плис,я так понимаю что если ордера несработали с 9 GMT до 13 GMT то они отменяются и считается новый диапазон с 10.00 CET – 14.00 и на него ставятся уже новые ордера?

Оффлайн ПиарщикАвтор темы

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 488
  • +109/-4
    • Просмотр профиля
Однако, я начал сомневаться в своей способности доступно излагать мысли на русском языке :-)
Вроде бы, несложные действия описываю, а сколько вопросов возникает...
Попробуем подойти с другой стороны.

Забудьте пока про два диапазона. Пусть он будет один - тот, который с 6 до 10 СЕТ - центрально-европейского времени.
Итак. В 10-00 (в Москве это будет 12 дня) смотрим, где гуляла цена евро за последние 4 часа, отмечаем самую верхнюю точку и самую нижнюю. На 5 пипсов выше самой верхней точки вешаем ордер на покупку с тейк профитом 80 пипсов и стопом 50 (а если нижняя точка ближе 50 - то по этой нижней точке). На 5 пипсов ниже нижней точки ставим ордер на продажу, с профитом 80 пипсов и стопом 50 (а если верхняя точка ближе 50, то стоп надо ставить не на 50, а на эту верхнюю точку). Все. Эти ордера висят до полуночи. Если не сработали - в полночь убираются. Если по какому-то открылась позиция - пусть работает или до срабатывания профита-стопа или, опять же, до полуночи, когда поза закрывается по рынку.
Одновременно все тоже самое строим по фунту. Только профит не 80, а 120 пипсов, да стоп не 50, а 70 (может быть меньше, если ближе противоположная точка).

Итак, в 10-05 (думаю, пяти минут на все хватит) у нас уже висят 4 ордера (2 по евро и 2 по фунту). До полуночи про них забываем напрочь. Забываем про одрера, но, если вдруг открылась позиция, то нам надо следить - как только по ней накопится прибыль 30 пунктов для евро или 40 для фунта - нужно передвинуть стоп-лосс на точку открытия позы.

Мы вспоминаем про второй диапазон в 14-00 СЕТ (в Москве - 16-00), когда нам нужно опять посмотреть, как себя вела цена за последние 4 часа. Снова отмечаем верхнюю и нижнюю точки и повторяем весь процесс постановки ордеров.  Значит, в 14-05 у нас повиснут ЕЩЕ 4 ордера - 2 на евро и 2 на фунт (плюс к тем, что мы повесили утром, но утренние ордера нас уже никак не волнуют - пусть себе работают). 

В 14-05, хорошо потрудившись еще пять минут, с чувством выполненного долга мы свободны аж до полуночи (в Москве это уже 2 часа ночи). Свободны, конечно. относительно - помним про то, что нам надо передвинуть стоп в безубыточность, если открывшаяся поза пройдет в нашу сторону на 30 пипсов по евро или 40 по фунту.

В полночь снимаем ордера, которые так и не открылись и закрываем позиции, если они есть, по рынку. Да, если сегодня пятница, то наша полночь переносится на час назад - на 23-00. И закрываем-снимаем мы все не в 24, а в 23 часа.
Подсчитываем профиты и лоссы от позиций, закрывшихся в течение дня и радуемся тому, насколько профитов больше, чем лосей.

Уфф...
Возгласы типа «Система галимая!» или «Где ты такие системы отстойные берешь!» - не отзывы, а бытовое хамство. Хамам – бан пожизненно!

Оффлайн vadimtt

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 10
  • +1/-0
    • Просмотр профиля
Ув.Пиарщик, вопросы возникли вот откуда.На вашем сайте была выложена  Комбинированная break-out система со среднемесячным профитом 600 пипсов  - где написано
Примечание: необходимо дождаться до 10 часов, выставить ордеры. Если они сработают до 14 часов, то открывать позиции. В 14 часов выставляются новые ордеры. Таким образом, за день может быть открыто по две позиции по каждой паре. А си-ма одна и таже.

Оффлайн Victor

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 1030
  • +107/-46
    • Просмотр профиля
Уважаемые.  Есть  индикатор,  рисует  текущий  канал  и  одновременно  указывает  ширину.  Автор  Парамон.  Оцените,  можно  его  использовать,  применительно  к  этой  системе.  С  уважением

Оффлайн mandor

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 116
  • +21/-12
    • Просмотр профиля
В целом, идея мне понравилась и под хорошее настроение решил настрогать советник для MT4. Поскольку аналогичную идею я уже рассматривал, то и название нашлось быстро: "Стартовый период". Имея в виду, что их несколько. Параметры ShiftGMT и MinStop выбраны для ДЦ LiteForex. Хотя меня там жутко не любят и банят по чёрному, однако для тестирования на мини реале лучшего пока а ля Рашен Федерашен не имеем. За что им спасибо (пока холодное). Писано в субботу небрившись (слава богу не употребляю), поэтому у этой фичи могут быть баги. За что прошу уважаемую публику и лично г-на Пиарщика меня извинить. Пиарщику особое спасибо за развитие идей в области стратегий на форексе. Текст приводится ниже. Малограмотные могут получить файл советника по почте скажем, за 100 рублей. Бедным вышлю бесплатно.

Некотрые особенности моего стиля.

Отложенные ордера устанавливатся без профита и лосса, поскольку двигать их можно только в этом случае. При наличии профита и лосса попытка выполнить функцию OrderModify() успеха обычно не имеет.

Не всегда есть возможность сразу встать на нужный уровень. Допустим текущая цена находится ближе к нему, чем допускают горячие эстонские парни из ДЦ. Тогда ставим настолько близко, насколько нам эти парни позволяют. Не ближе MinStop от уровня. А потом, если цена откатила и появилась возможность, то сдвигает точно на расчетный уровень.

Аналогичная ситуёвина с уровнями стоп лосс и тейк профит ордеров BUY и SELL. Ставим настолько близко, насколько допускают горячие эстонские парни из ДЦ. А потом по возможности сдвигаем точно на расчетный уровень.

Расчет уровней и сравнения числовых значений я провожу только с целыми типами данных. Преобразую значения ордера из типа double в тип int делением на point и округлением до целого. Обратно предобразую при подстановке в торговые фунции как целое цисло умноженное на point. В этом случае сравнение чисел происходит вынужденно правильно, что не всегда проскакивает с типами double.

Итак, занавес:
По настоящему человек раскрывается только на операционном столе © Херург

Оффлайн mandor

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 116
  • +21/-12
    • Просмотр профиля
// Стартовый период.mq4
// © 2003-2006 Mandor ®
// E-mail: mandorr@gmail.com
// Используется только период H1
// Первый стартовый период 05-08 GMT, отложенные ордера устанавливаются в 09 GMT
// Второй стартовый период 09-12 GMT, отложенные ордера устанавливаются в 13 GMT
// Отложенные ордера устанавливаются в течении часа только 1 раз
// LossFree: прибыль, при которой стоп лосс передвигается в точку безубыточности
// ShiftGMT: время торгового сервера минус время по Гринвичу

extern double Lots = 0.1;

// Для GBPUSD
// extern int    TakeProfit = 120;
// extern int    StopLoss   = 70;
// extern int    LossFree   = 40;

// Для EURUSD
extern int    TakeProfit = 80;
extern int    StopLoss   = 50;
extern int    LossFree   = 30;

extern int    ShiftGMT   = 1;
extern int    MinStop    = 11;


int nBuyStopSetting;
int nSellStopSetting;


// Основная функция
// Вызывается после прихода очередного тика
void start()
   {
   if (Bars<100 || IsTradeAllowed()==false || Period()!=PERIOD_H1) return;
   if (ShiftGMT<-23 || ShiftGMT>23) return;
   int nTime=Time[0]-ShiftGMT*3600;
   int nHour=TimeHour(nTime);
   int nDayOfWeek=TimeDayOfWeek(nHour);
   if (nDayOfWeek==5) {if (nHour==22 || nHour<9) {CloseOrders(); return;}}
   else {if (nHour==23 || nHour<9) {CloseOrders(); return;}}
   if (SetStopLoss()  >0) return;
   if (SetTakeProfit()>0) return;
   if (nHour==9 || nHour==13) SetOrders();
   else {nBuyStopSetting=0; nSellStopSetting=0;}
   }


// Закрытие всех ордеров
void CloseOrders()
   {
   int i, nTicket, nPrice, nSlippage;
   double dLots;
   nTicket=0; dLots=0; nPrice=0; nSlippage=2;
   for(i=0;i<OrdersTotal();i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUY ) {nTicket=OrderTicket(); dLots=OrderLots(); nPrice=MathRound(Bid/Point); break;}
      if (OrderType()==OP_SELL) {nTicket=OrderTicket(); dLots=OrderLots(); nPrice=MathRound(Ask/Point); break;}
      }
   if (nTicket>0) {OrderClose(nTicket,dLots,nPrice*Point,nSlippage); return;}
   for(i=0;i<OrdersTotal();i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUYSTOP ) {nTicket=OrderTicket(); break;}
      if (OrderType()==OP_SELLSTOP) {nTicket=OrderTicket(); break;}
      }
   if (nTicket>0) OrderDelete(nTicket);
   }


// установка стоп лосс ордеров Buy и Sell
int SetStopLoss()
   {
   int i, nPrice, nBid, nAsk, nOrderType, nTicket, nOpenPrice, nStopLoss, nTakeProfit;
   nTicket=0;
   for (i=0;i<OrdersTotal();i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      nOrderType=OrderType();
      if (nOrderType==OP_BUY || nOrderType==OP_SELL)
         {
         nTicket=OrderTicket();
         nOpenPrice=MathRound(OrderOpenPrice()/Point);
         nStopLoss=MathRound(OrderStopLoss()/Point);
         nTakeProfit=MathRound(OrderTakeProfit()/Point);
         break;
         }
      }
   if (nTicket==0) return(0);
   nPrice=nStopLoss;
   if (nOrderType==OP_BUY)
      {
      nBid=MathRound(Bid/Point);
      if (nBid>nOpenPrice+LossFree)
         {if (nStopLoss<nOpenPrice) nPrice=nOpenPrice;}
      else if (nBid>nOpenPrice-StopLoss+MinStop)
         {if (nStopLoss<nOpenPrice-StopLoss) nPrice=nOpenPrice-StopLoss;}
      else
         {if (nStopLoss<nBid-MinStop) nPrice=nBid-MinStop;}
      }
   else if (nOrderType==OP_SELL)
      {
      nAsk=MathRound(Ask/Point);
      if (nAsk<nOpenPrice-LossFree)
         {if (nStopLoss==0 || nStopLoss>nOpenPrice) nPrice=nOpenPrice;}
      else if (nAsk<nOpenPrice+StopLoss-MinStop)
         {if (nStopLoss==0 || nStopLoss>nOpenPrice+StopLoss) nPrice=nOpenPrice+StopLoss;}
      else
         {if (nStopLoss==0 || nStopLoss>nAsk+MinStop) nPrice=nAsk+MinStop;}
      }
   if (nStopLoss==nPrice) return(0);
   OrderModify(nTicket,nOpenPrice*Point,nPrice*Point,nTakeProfit*Point,0);
   return(nTicket);
   }


// установка тайк профит ордеров Buy и Sell
int SetTakeProfit()
   {
   int i, nPrice, nBid, nAsk, nOrderType, nTicket, nOpenPrice, nStopLoss, nTakeProfit;
   nTicket=0;
   for (i=0;i<OrdersTotal();i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      nOrderType=OrderType();
      if (nOrderType==OP_BUY || nOrderType==OP_SELL)
         {
         nTicket=OrderTicket();
         nOpenPrice=MathRound(OrderOpenPrice()/Point);
         nStopLoss=MathRound(OrderStopLoss()/Point);
         nTakeProfit=MathRound(OrderTakeProfit()/Point);
         break;
         }
      }
   if (nTicket==0) return(0);
   nPrice=nTakeProfit;
   if (nOrderType==OP_BUY)
      {
      nAsk=MathRound(Ask/Point);
      if (nAsk<nOpenPrice+TakeProfit-MinStop)
         {if (nTakeProfit>nOpenPrice+TakeProfit) nPrice=nOpenPrice+TakeProfit;}
      else
         {if (nTakeProfit>nAsk+MinStop) nPrice=nAsk+MinStop;}
      }
   else if (nOrderType==OP_SELL)
      {
      if (nBid>nOpenPrice-TakeProfit+MinStop)
         {if (nTakeProfit<nOpenPrice-TakeProfit) nPrice=nOpenPrice-TakeProfit;}
      else
         {if (nTakeProfit<nBid-MinStop) nPrice=nBid-MinStop;}
      }
   if (nTakeProfit==nPrice) return(0);
   OrderModify(nTicket,nOpenPrice*Point,nStopLoss*Point,nPrice*Point,0);
   return(nTicket);
   }


// Установка и корректировка отложенных ордеров
void SetOrders()
   {
   int nBid, nAsk, nSpread;
   int nTicket, nOpenPrice, nMagic;
   int nHighStop, nLowStop, nPrice;
   int i;
   string sText;
   nMagic=TimeHour(Time[0]);
   // количество ордеров текущего часа
   int nTotalBuyStop=0,nTotalSellStop=0;
   for (i=0;i<OrdersTotal();i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber( )!=nMagic) continue;
         {
         if (OrderType()==OP_BUYSTOP) nTotalBuyStop++;
         if (OrderType()==OP_SELLSTOP) nTotalSellStop++;
         }
      }
   // уровни для отложенных ордеров
   nAsk=MathRound(Ask/Point);
   nBid=MathRound(Bid/Point);
   nSpread=nAsk-nBid;
   nHighStop=MathRound(High[Highest(NULL,0,MODE_HIGH,4,1)]/Point)+nSpread;
   nLowStop =MathRound(Low [Lowest (NULL,0,MODE_LOW ,4,1)]/Point);
   nHighStop=nHighStop+5;
   nLowStop =nLowStop -5;
   if (nTotalBuyStop==0)
      {
      // установка ордера Buy Stop
      if (nBuyStopSetting>0) return;
      nPrice=nHighStop; if (nHighStop<nAsk+MinStop) nPrice=nAsk+MinStop;
      sText="Open in "+DoubleToStr(nMagic,0)+" hour";
      nTicket=OrderSend(Symbol(),OP_BUYSTOP,Lots,nPrice*Point,0,0,0,sText,nMagic,0);
      return;
      }
   else
      {
      nBuyStopSetting=1;
      // корректировка цены ордеров Buy Stop
      nPrice=nHighStop; if (nHighStop<nAsk+MinStop) nPrice=nAsk+MinStop;
      nTicket=0;
      for (i=0;i<OrdersTotal();i++)
         {
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
         if (OrderSymbol()!=Symbol()) continue;
         if (OrderType()!=OP_BUYSTOP) continue;
         nOpenPrice=MathRound(OrderOpenPrice()/Point);
         if(nOpenPrice<=nPrice) continue;
         nTicket=OrderTicket();
         break;
         }
      if (nTicket>0)
         {
         OrderModify(nTicket,nPrice*Point,0,0,0);
         return;
         }
      }
   if (nTotalSellStop==0)
      {
      // установка ордера Sell Stop
      if (nSellStopSetting>0) return;
      nPrice=nLowStop; if (nLowStop>nBid-MinStop) nPrice=nBid-MinStop;
      sText="Open in "+DoubleToStr(nMagic,0)+" hour";
      nTicket=OrderSend(Symbol(),OP_SELLSTOP,Lots,nPrice*Point,0,0,0,sText,nMagic,0);
      return;
      }
   else
      {
      // корректировка цены ордеров Sell Stop
      nSellStopSetting=1;
      nPrice=nLowStop; if (nLowStop>nBid-MinStop) nPrice=nBid-MinStop;
      nTicket=0;
      for (i=0;i<OrdersTotal();i++)
         {
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
         if (OrderSymbol()!=Symbol()) continue;
         if (OrderType()!=OP_SELLSTOP) continue;
         nOpenPrice=MathRound(OrderOpenPrice()/Point);
         if(nOpenPrice>=nPrice) continue;
         nTicket=OrderTicket();
         break;
         }
      if(nTicket>0)
         {
         OrderModify(nTicket,nPrice*Point,0,0,0);
         return;
         }
      }
   }
По настоящему человек раскрывается только на операционном столе © Херург

Оффлайн mandor

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 116
  • +21/-12
    • Просмотр профиля
На тестах за 2005 год система не даёт прибыль, наверно надо её несколько оптимизировать. В оригинале есть ещё одно свойство. Если расстояние до противоположной границы диапазона стартового периода меньше значения параметра StopLoss, то стоп лосс открытого ордера ставим на границу диапазона. Я это пока не учёл. Кто знает, может @ здесь зарыта.
По настоящему человек раскрывается только на операционном столе © Херург

Оффлайн DAF

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 4
  • +0/-0
    • Просмотр профиля
Советник накидал еще с неделю назад. Учитывает все условия, какие описал Пиарщик. Тестировал на Альпаришной истории с июня 2004 г. на минутках. Размер лота 0.1, депо 10K, никакого ММ не использовал. При изначальных условиях сливает на протяжении всей истории. При увеличении отступа от High/Low с 5 до 20 пунктов и увеличении порога безубытка до 50 пунктов, 2004 - все равно сливает, 2005 - более менее ровно в плюс. Тестировал на EURUSD, так как использование двух валютных пар, считаю, нужно только для выравнивания кривой Equity, в итоге каждая все равно должна давать плюс. Советника, к сожалению, выложить не могу, так как он использует кучу пользовательских библиотек.

Оффлайн SemGA

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 4
  • +0/-0
    • Просмотр профиля
Советник накидал еще с неделю назад.  Советника, к сожалению, выложить не могу, так как он использует кучу пользовательских библиотек.
             Стоило хвастаться?! А как еще это считать? Форумы для того и существуют, чтобы сообща (по возможности) решать проблемы. А то как некоторые политики: "...знаю, но не скажу!..."  ( имею, но не дам!).

Оффлайн DAF

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 4
  • +0/-0
    • Просмотр профиля
Стоило хвастаться?!

Так на кой он нужен, если убыточный? mandor ведь выложил, я только подтвердил, что сливает. Переносить все функции из библиотек в тело советника, чтобы все корректно работало, довольно емкая работа. Чего ради? Чтобы выложить код заведомо убыточного советника? Не вижу смысла.