Обсуждение парного трейдинга

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

Kvant

Элитный участник
Квант - пробовал ли изменением периодов МАшек добиться всётаки Увеличения кол-ва Положительных сделок?

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

SilverKZ

Элитный участник
немножко изменил код при деинициализации советника - вывод результата не в лог
а в отдельный файл....
PHP:
Expand Collapse Copy
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
// создадим файл
  int handle;
....
// закроем файл   
  FileClose(handle);
//----
   return(0);
  }

правда там во Врите надо бы вставить небольшой цикл записывающий в один ряд результат Серии сделок (от 0 до 0) - но это нетрудно и вам самим сделать :)

Запись в один ряд серии

PHP:
Expand Collapse Copy
int deinit()
  {
  //----
  string Txt;
  int cnt;  
  int handle = FileOpen("my_data.csv",FILE_CSV|FILE_WRITE,';');
  int total  = OrdersHistoryTotal();  
  int Type   = 0;
  //----
  for ( cnt = 0; cnt < total ; cnt++ ) {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY) == true) 
         {         
           if (OrderType()!=Type)
              {
                FileWrite(handle, Txt);
                Txt="";
              }
           if (OrderType() == 0)
              {
                Txt = StringSetChar(DoubleToStr(OrderProfit(),2), StringFind(DoubleToStr(OrderProfit(),2), "."), ',' ) + ";" + Txt;
              } 
           if (OrderType() == 1)
              {
                Txt = StringSetChar(DoubleToStr(OrderProfit(),2), StringFind(DoubleToStr(OrderProfit(),2), "."), ',' ) + ";" + Txt;
              }          
           Type = OrderType();
           // файл сохранится в папке Alpari\tester\files\my_data.csv
         }
  }
  FileClose(handle);
//----
  return(0);
  }

0000014256.png
 

NeColla

Элитный участник
в твоём отчете - серия подразумевает Открытие сделок в одном направлении
БайБайБайБай - селл- смена серии - не зависимо от "серий" между 0х точек

Сильвер - покажи отчёт за 2-3 года?
 

SilverKZ

Элитный участник
в твоём отчете - серия подразумевает Открытие сделок в одном направлении
БайБайБайБай - селл- смена серии - не зависимо от "серий" между 0х точек
так и есть, между 0 точками в МТ4 только и будут все бай или все селл, т.к. тест возможен только по одному инструменту

Сильвер - покажи отчёт за 2-3 года?
это отчет Kvantа, ему требуется хелп
 

Andri770

Местный житель
возьми период 2007-2012 год - там было всё... :)

Мда по тикам долго тестится,два отчёта с разными настройками(один по ценам открытия,говорю долго по тикам) ,мартина нет,доливок нет,есть 10 стратегий ,10 машек по ADX с разными значениями,и определённое время работы :-) ММ разный для каждой...

P.S Начальное дэпо 100 Зелёных плечо 1к100
 

Вложения

  • Миллионер 2.rar
    Миллионер 2.rar
    194,4 КБ · Просмотры: 170
  • Миллионер.rar
    Миллионер.rar
    258,6 КБ · Просмотры: 141
  • Миллионер 2.gif
    Миллионер 2.gif
    6 КБ · Просмотры: 279
  • Миллионер.gif
    Миллионер.gif
    6,2 КБ · Просмотры: 234
Последнее редактирование:

Kvant

Элитный участник
Сильвер - покажи отчёт за 2-3 года?

А вот и отчет с 2008 г. Начального депо в 10 К не хватает, пришлось увеличить до 50 К. Периоды МА 12/26. Ограничил количество входов до 4. Что-то уж совсем картина удручающая складывается...:question:
 

Вложения

SilverKZ

Элитный участник
А вот и отчет с 2008 г. Начального депо в 10 К не хватает, пришлось увеличить до 50 К. Периоды МА 12/26. Ограничил количество входов до 4. Что-то уж совсем картина удручающая складывается...:question:

А можно увидеть результаты с 1 мая 2011 года с ограничением до 4-х входов
 

NeColla

Элитный участник
А вот и отчет с 2008 г. Начального депо в 10 К не хватает, пришлось увеличить до 50 К. Периоды МА 12/26. Ограничил количество входов до 4. Что-то уж совсем картина удручающая складывается...:question:

гммм...
56,7 69,3 66,9 47,4
-5433,9 -6210,5 -5909,1 -5355,5 4 входа евро усд
24535,5 7897,4 -6243,9 -20651,5 4 входа по фунту
===
результат не безнадёжен :-) - щас прилеплю к деиниту подобие увеличителя лотов
====
кстати... ты как тестируешь? откуда сигналы на вход выход получаешь? как синхронизируешь время сделок в парах?
 

Kvant

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

Данный тест по индикатору Hedge_v2.1 (можно и по Spred2, по нему быстрее). Вот как это выглядит на скрине. Естественно по GBPUSD все наоборот.
 

Вложения

  • Вход и выход.jpg
    Вход и выход.jpg
    121,1 КБ · Просмотры: 337

Kvant

Элитный участник
А вот скрин по индикатору Spred2.
 

Вложения

  • Вход и выход-1.jpg
    Вход и выход-1.jpg
    122,6 КБ · Просмотры: 234

NeColla

Элитный участник
Квант = вот такой деинит прилепи - погляди результаты с 2008 года
последние 4 строчки потом покажи из общих отчётов
PHP:
Expand Collapse Copy
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
// создадим файл
/*
  int handle;
  handle=FileOpen("my_data.csv",FILE_CSV|FILE_WRITE,';');
// в цикле пробежимся по истории сделок и занесём их в файл
  int cnt, ticket, total,TotalOpenOrders;
  total=OrdersHistoryTotal();
  for ( cnt = 0; cnt < total; cnt++ ) {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY) == true) {
         if (OrderProfit() != 0){
            //Print(OrderOpenTime(),";",OrderType(),";",OrderProfit());
            FileWrite(handle, OrderOpenTime(), OrderType(), OrderProfit() );
            // подставь тут свою информацию - Раздель информации будет  ";" - выставится Автоматически
            // чтобы потом в Екселе открыть по этому разделителю...
            // предварительно, перед открытием в екселе -  надо будет заменить все точки на запятые
            // файл сохранится в папке Alpari\tester\files\my_data.csv
          }
       }
  }
// закроем файл   
  FileClose(handle);
//----
*/
  //----
  string Txt;
  int cnt;  
  int ha1 = FileOpen("my_data.csv",FILE_CSV|FILE_WRITE,';');
  int total  = OrdersHistoryTotal();  
  int Type   = 0;
  //----
  for ( cnt = 0; cnt < total ; cnt++ ) {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY) == true) 
         {         
           if (OrderType()!=Type)
              {
                FileWrite(ha1, Txt);
                Txt="";
              }
           if (OrderType() == 0)
              {
                // временно уберём замену точки на запятую
                // Txt = StringSetChar(DoubleToStr(OrderProfit(),2), StringFind(DoubleToStr(OrderProfit(),2), "."), ',' ) + ";" + Txt;
                // кстати это можно сделать и в обычно текстовом редакторе через поиск и замену
                /// дааа - вот тут ошибка - результат серии вставляется в Начало строки - а надо бы в конец... ну не суть
                // позже изменю
                Txt = Txt + DoubleToStr(OrderProfit(),2) + ";" ;
              } 
           if (OrderType() == 1)
              {
                // аналогично
                //Txt = StringSetChar(DoubleToStr(OrderProfit(),2), StringFind(DoubleToStr(OrderProfit(),2), "."), ',' ) + ";" + Txt;
                Txt = Txt + DoubleToStr(OrderProfit(),2) + ";" ;
              }          
           Type = OrderType();
           // файл сохранится в папке Alpari\tester\files\my_data.csv
         }
  }
  FileClose(ha1);
//----
/// Доливщик
  int ha2 = FileOpen("dolivka_data.csv",FILE_CSV|FILE_WRITE,';');
  ha1=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';'); // открывает тот файл куда записали результаты серий...
  int Kls,prD = 0; // признак доливки
  double lot1, // первоначальный лот
  lot2, // лот с доливкой 
  res0, // dummi
  res1, // первый результат в серии
  sum1, // результат текущей сделки
  sum2, // результат если сделка дала минус
  sum3; // результат Общий
  // пробежимся в цикле по итогам 1ой сделки в серии
  lot1 = 1; lot2 = 1;
  while (!FileIsEnding(ha1) ) {
    // считали Первый результат в серии
    res1 = FileReadNumber(ha1);
    // теперь пропустим до конца строки
    while (!FileIsLineEnding(ha1) ) {
      res0 = FileReadNumber(ha1);
    }
    Kls = Kls + 1;
    FileWrite(ha2, "  ");
    FileWrite(ha2, "=========== Серия = " + DoubleToStr(Kls,0) );
    Txt = "  Рабочий лот = " + DoubleToStr(lot2,1);
    Txt = Txt + "|  Сумма в серии = " + DoubleToStr(sum2,2);
    Txt = Txt + "|  Итоговая = " +  DoubleToStr(sum3,2);
    FileWrite(ha2, Txt);
    //
    // теперь собственно типа сделки
    sum1 = lot2 * res1;
    // запишем результат в итоги
    sum2 = sum2 + sum1;
    Txt = "Сделка = " + DoubleToStr(sum1,2);
    Txt = Txt + " Sсерии = " + DoubleToStr(sum2,2);
    Txt = Txt + " Sобщая = " + DoubleToStr(sum3,2);
    FileWrite(ha2, Txt);
    // если итог положительный то в Итоговую копилку его
    if (sum2 > 0) {
       sum3 = sum3 + sum2;
       // всё в первоначальное состояние
       sum2 = 0;
       sum1 = 0;
       lot2 = lot1;
       prD = 0;
    }
    // разбираемся с лотами
    if (sum1 < 0) prD = 1;
    if (sum1 > 0 && prD == 1) {// после серии убыточных сделок - появилась Положительная - Увеличим лот на +1
       prD  = 0;
       lot2 = lot2 + 1;
    }
  }
  // запишем полный итог
  FileWrite(ha2, "=== END ===");
  Txt = "=== Последняя Сделка === " + DoubleToStr(sum1,2);
  Txt = Txt + " Sсерии = " + DoubleToStr(sum2,2);
  Txt = Txt + " Sобщая = " + DoubleToStr(sum3,2);
  FileWrite(ha2, Txt);
  FileWrite(ha2, "=== итого ===");
  sum3 = sum3 + sum2;
  FileWrite(ha2, DoubleToStr(sum3,2) );
  FileClose(ha1);
  FileClose(ha2);
  return(0);
  }
 
Верх