Петля Мёбиуса - страница 915

Что то не понятно, ваш код проверяет цены закрытия на "рассинхрон" при построении "экви" или нет? По вашим ссылкам только "исполняемые" файлы, как по ним можно проверить код? 
Roman Shiredchenko #:
Рена - а у тебя бывает когда - нибудь тренд? Кроме тренда эквити баланса?
А то ты 20 лет торгуешь и пишешь про флет постоянно....
на рынке есть, и тренд и флет, никуда не денутся
AntonR85 #:
Что то не понятно, ваш код проверяет цены закрытия на "рассинхрон" при построении "экви" или нет? По вашим ссылкам только "исполняемые" файлы, как по ним можно проверить код? 

Начало - от цен открытия бара.

Конец расчёта - от цены закрытия, если конец на текущем баре, то от цен бид/аск(продажа/покупка)

Бары синхронизированы по времени, всё учтено, также учтён своп и тройной своп в среду.

Погрешность расчёта с лотом 0.1 примерно $2 на длительном участке.

P.S. Я проверял, открыл несколько позиций и продержал месяц, посмотрел реальный результат и сравнил с индикатором эквити по истории. Разницы очень минимальна и незначительная.
Roman Shiredchenko #:
Вот и давайте тут торговать флет и к чёрту на историю с немецких марок ) торгуем настоящим!

я торгую, но не синус

синус - это ошибка, сказано неоднократно

mvf358 #:
Вот и вы прозрели увидели флет по ЭКВИТИ ..если торгуя всей котлетой для особо грамотных поясню . .депозит 300долларов. И три инструмента по0.1лота плечо от 100 и выше.и амплитуда ЭКВИТИ не превышает объем депозита то что вам мешает найти точку баланса и при отланениях эквити вту или иную сторону торговать внутрь канала? Вот только для этого нужен демо счёт с индикатором эквити баланса.чтобы понимать где сейчас находиться эквити относительно точки баланса

я не про то

на рынке флет, который и закатывает вам в мозг всякую чушь типа синуса

будут тренды, будет слив и потерянное в пустую время.

там картинку правильную показали, чуть по выше: переход с тренда на флет

Renat Akhtyamov #:

я торгую, но не синус

синус - это ошибка, сказано неоднократно

Так ошибка и торгуется в возрате к среднему.
Roman #:
Так ошибка и торгуется в возрате к среднему.

ну торгуйте ошибку, раз так нравится

;)

Vitaly Muzichenko #:
индикатором эквити
Я так понимаю это "экви-баланс"? Вы на каком периоде его смотрели? 
Renat Akhtyamov #:

я не про то

на рынке флет, который и закатывает вам в мозг всякую чушь типа синуса

будут тренды, будет слив и потерянное в пустую время.

там картинку правильную показали, чуть по выше: переход с тренда на флет

Ренат ты толи "выпил"(на этой странице) тебя прям не узнать, здравые мысли, как настоящий трейдер идёшь против "толпы". Ты же вроде любишь "шарады" разгадывать?

Найди в этом коде "логическую" ошибку и будет у тебя "синус" как у меня на скрине.

void CalculateHistoryBars()
  {

   if(!OrderSelect(0,SELECT_BY_POS,MODE_HISTORY)) {restart=true;return;}

   DrawBeginBar=iBarShift(NULL,0,Draw_Begin);
   DrawEndBar=iBarShift(NULL,0,Draw_End);
   if(DrawEndBar==-1) DrawEndBar=0;

   if(Import_History!="") ImportData(); else PrepareData();

   int handle=PrepareFile();

   ResultBalance=0;
   ResultProfit=0;
   IntervalBalance=0;
   IntervalProfit=0;
   SumProfit=0;
   SumLoss=0;
   GrowthRatio=1;
   PeakProfit=0;
   PeakEquity=0;
   MaxDrawdown=0;
   RelDrawdown=0;
   StartTime=0;
   FinishTime=0;

   DrawBeginBar=MathMin(OpenBar[0],DrawBeginBar);
   CalcCurrency=AccountCurrency();
   MissingSymbols="";
   int start_from=0;

   GetStartBalance();

   for(int i=DrawBeginBar; i>=DrawEndBar; i--)
     {

      ProfitLoss=0;
      SumMargin=0;
      OrdersCount=0;
      ArrayInitialize(SymbolLong,0);
      ArrayInitialize(SymbolShort,0);

      for(int j=start_from; j<TotalOrders; j++)
        {

         int k=IndexOrderOpenTime[j][1];
         int m=IndexOrderOpenTime[start_from][1];

         if(!Filter[k]) continue;

         if(OpenBar[k]<i) break;
         if(CloseBar[m]>i) start_from++;

         if(CloseBar[k]==i && ClosePrice[k]!=0)
           {
            if(CloseTime[k]>FinishTime) FinishTime=CloseTime[k];
            double result=Swap[k]+Commission[k]+Profit[k];
            ResultProfit+=result;
            ResultBalance+=result;
            IntervalProfit+=result;
            if(result>0) SumProfit+=result; else SumLoss+=result;
           }

         else if(OpenBar[k]>=i && CloseBar[k]<=i)
           {

            if(Type[k]>5)
              {
               ResultBalance+=Profit[k];
               if(IntervalProfit!=0 && IntervalBalance!=0)
                  GrowthRatio*=(1+(IntervalProfit/IntervalBalance));
               IntervalBalance=ResultBalance;
               IntervalProfit=0;
               if(i>DrawBeginBar) continue;
               if(!Show_Verticals) continue;
               string text=StringConcatenate(Instrument[k],": ",DoubleToStr(Profit[k],2)," ",CalcCurrency);
               CreateLine("Balance "+TimeToStr(OpenTime[k]),OBJ_VLINE,1,OrangeRed,STYLE_DOT,false,text,Time[i],0);
               continue;
              }

            if(i>DrawBeginBar) continue;
            if(!CheckSymbol(k)) continue;

            if(StartTime==0) StartTime=MathMax(OpenTime[k],Time[i]);

            int bar=iBarShift(Instrument[k],0,Time[i]);
            int day_bar=TimeDayOfWeek(iTime(Instrument[k],0,bar));
            int day_next_bar=TimeDayOfWeek(iTime(Instrument[k],0,bar+1));
            if(day_bar!=day_next_bar && OpenBar[k]!=bar)
              {
               int mode=(int)MarketInfo(Instrument[k],MODE_PROFITCALCMODE);
               if(mode==0)
                 {
                  if(TimeDayOfWeek(iTime(Instrument[k],0,bar))==4) CumSwap[k]+=3*DaySwap[k];
                  else CumSwap[k]+=DaySwap[k];
                 }
               else
                 {
                  if(TimeDayOfWeek(iTime(Instrument[k],0,bar))==1) CumSwap[k]+=3*DaySwap[k];
                  else CumSwap[k]+=DaySwap[k];
                 }
              }

            if(Type[k]==OP_BUY)
              {
               OrdersCount++;
               SymbolLong[IndexOrderSymbol[k]]+=Lots[k];
               LotValue=ContractValue(Instrument[k],Time[i],Period(),CalcCurrency);
               ProfitLoss+=Commission[k]+CumSwap[k]+(iClose(Instrument[k],0,bar)-OpenPrice[k])*Lots[k]*LotValue;
              }
            if(Type[k]==OP_SELL)
              {
               OrdersCount++;
               SymbolShort[IndexOrderSymbol[k]]+=Lots[k];
               LotValue=ContractValue(Instrument[k],Time[i],Period(),CalcCurrency);
               ProfitLoss+=Commission[k]+CumSwap[k]+(OpenPrice[k]-iClose(Instrument[k],0,bar)-Spread[k])*Lots[k]*LotValue;
              }

           }

        }

      if(i>DrawBeginBar) continue;

      for(int k=0;k<TotalSymbols;k++)
        {
         double hedged=MathMin(SymbolLong[k],SymbolShort[k])*2;
         double unhedged=SymbolLong[k]+SymbolShort[k]-hedged;
         SumMargin+=(hedged*SymbolHedge[k]+unhedged)*SymbolMargin[k];
        }

      if(i==MathMin(DrawBeginBar,OpenBar[0])) PeakEquity=ResultBalance;

      if(Show_Equity)
      if(Only_Trading)  {Equity[i]=NormalizeDouble(ResultProfit+ProfitLoss,2);}
      else              {Equity[i]=NormalizeDouble(ResultBalance+ProfitLoss,2);}
      if(Show_Balance)  {Balance[i]=NormalizeDouble(Only_Trading?ResultProfit:ResultBalance,2);}
      if(Show_Margin)   {Margin[i]=NormalizeDouble(SumMargin,2);}
      if(Show_Free)     {Free[i]=NormalizeDouble(ResultBalance+ProfitLoss-SumMargin,2);}
      if(Show_Orders)   {Orders[i]=OrdersCount;}
      if(Show_Zero)     {Zero[i]=0;}
      if(Show_Info)     {GetDrawdown();}

      if(ProfitLoss!=0) FinishTime=Time[i]+PeriodSeconds(PERIOD_CURRENT);

      WriteData(handle,i);

     }

   if(IntervalProfit!=0 && IntervalBalance!=0)
      GrowthRatio*=(1+(IntervalProfit/IntervalBalance));
   IntervalBalance=ResultBalance;
   IntervalProfit=0;

   if(Write_Data_File!="" && handle>0) FileClose(handle);

   if(Equity_Min_Alert!=0)
      CreateLine("Alert-Min",OBJ_HLINE,1,Silver,STYLE_DOT,false,"Min equity alert",0,Equity_Min_Alert);
   if(Equity_Max_Alert!=0)
      CreateLine("Alert-Max",OBJ_HLINE,1,Silver,STYLE_DOT,false,"Max equity alert",0,Equity_Max_Alert);

   if(Chart_Grid_Size!=0) DrawChartGrid();

  }
AntonR85 #:
Я так понимаю это "экви-баланс"? Вы на каком периоде его смотрели? 
М30, индикатор показывает изменение эквити.