任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 31

 

请指教,我根据几个货币对的走势做了一个指标,但它恰好要重新计算。没有什么宇宙性的--它指的是烛台参数。也许,它搞砸了是因为

蜡烛图只在某个蜡烛图的第一个刻度时刻开始打开,如果一个工具的新蜡烛 图已经开始,它还没有在第二个工具上形成。我认为这就是问题所在。

你知道吗,也许有一种方法可以使它只在所有新的蜡烛形成后才计算? 也许iTime(symbol1,,1)=iTime(symbol2,,1)?

 

各位同事下午好

请告知代码中的逻辑是否正确。

代码的要点就是这个公式。

TRIN = (增长对/减少对)/ (增长对/减少对的数量)

double Index[];
double instr_up, instr_dn, vol_dn, vol_up;
//+------------------------------------------------------------------+
int init()
{
   SetIndexBuffer(0,Index);
   SetIndexStyle(0,DRAW_LINE);   
   string Tf;
   if(Period()==1) Tf="M1";
   if(Period()==5) Tf="M5";
   if(Period()==15) Tf="M15";
   if(Period()==30) Tf="M30";
   if(Period()==60) Tf="H1";
   if(Period()==240) Tf="H4";
   if(Period()==1440) Tf="D1";
   if(Period()==10080) Tf="W1";
   if(Period()==43200) Tf="MN";         
        string short_name="TRIN("+Depth+","+Tf+")";
        IndicatorShortName(short_name);
   IndicatorDigits(0);
   return(0);
}

//---- функция проверки цены закрытия на максимум Доллара США за период Depth
int newh(string symbol,int i)
      {
         datetime time_bar = Time[i];
         int bar_no = iBarShift(symbol, Period(), time_bar, false);
                
         if(symbol=="EURUSD" || symbol=="GBPUSD" || symbol=="AUDUSD" || symbol=="NZDUSD")
            {

               int j=iLowest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     int nh=1;                                                 
                  }
               else                                                                 
                  {
                     nh=0;                                              
                  }       
            }
         else
            {
               j=iHighest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     nh=1;                                                 
                  }
               else                                                                 
                  {
                     nh=0;                                              
                  }             
            }
         return(nh);      
      }

//---- функция проверки цены закрытия на минимум Доллара США за период Depth
int newl(string symbol,int i)
      {
         datetime time_bar = Time[i];
         int bar_no = iBarShift(symbol, Period(), time_bar, false);      
      
         if(symbol=="EURUSD" || symbol=="GBPUSD" || symbol=="AUDUSD" || symbol=="NZDUSD")
            {
               int j=iHighest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     int nl=1;                                                 
                  }
               else                                                                 
                  {
                     nl=0;                                              
                  }       
            }
         else
            {
               j=iLowest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     nl=1;                                                 
                  }
               else                                                                 
                  {
                     nl=0;                                              
                  }             
            }
         return(nl);      
      }
//+------------------------------------------------------------------+
int start()
{
   int limit=Bars-IndicatorCounted();
   for(int i=1; i<limit; i++)
          {       
            if (newh("EURUSD",i) > 0                              //-- Если пара росла, то
             {instr_up=instr_up+1;vol_up+=iVolume("EURUSD",0,i);}   //-- instr_up - увеличиваем на 1 и vol_up - увеличиваем на Volume по этой паре   
           else //if (newl("EURUSD",i) > 0)                         //-- иначе
              {instr_dn=instr_dn+1;vol_dn+=iVolume("EURUSD",0,i);}  //-- instr_dn - увеличиваем на 1 и vol_dn - увеличиваем на Volume по этой паре
              
            if (newh("GBPUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("GBPUSD",0,i);}
           else //if (newl("GBPUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("GBPUSD",0,i);}
            
            if (newh("USDCHF",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDCHF",0,i);}
           else //if (newl("USDCHF",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDCHF",0,i);}
            
            if (newh("USDJPY",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDJPY",0,i);}
           else if (newl("USDJPY",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDJPY",0,i);}
            
            if (newh("AUDUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("AUDUSD",0,i);}
           else //if (newl("AUDUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("AUDUSD",0,i);}
            
            if (newh("USDCAD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDCAD",0,i);}
           else //if (newl("USDCAD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDCAD",0,i);}
            
            if (newh("NZDUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("NZDUSD",0,i);}
           else //if (newl("NZDUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("NZDUSD",0,i);}   
     
     if (instr_dn == 0)instr_dn=EMPTY;  // -- Если 
     if (vol_dn == 0)vol_dn=EMPTY;      // -- значения
     if (instr_up == 0)instr_up=EMPTY;  // -- нулевые
     if (vol_up == 0)vol_up=EMPTY;
     
     Index[i]=(instr_up/instr_dn)/(vol_up/vol_dn);  // -- TRIN
     
     instr_up=0;instr_dn=0;vol_up=0;vol_dn=0;  // -- Обнуление
     }
     
        return(0);
}

这就是出来的东西。

谭华杰

谢谢你!

 

能否请您告知

1 专家顾问可以为余额增加资金

2、如果交易者有%的自由资金--如何在测试器中实现这一点,还是按原样工作?

 

1.如果是为了测试,设定一个好的初始金额,并在合适的金额基础上建立MM,会比较容易。

2.出于测试目的,这绝对是不必要的。差价是更重要的。

 
splxgf:

1.如果是为了测试,设定一个好的初始金额,并在合适的金额基础上建立MM,是比较容易的。

2.出于测试目的,这绝对是不必要的。差价是更重要的。


你知道我是如何测试的吗?你知道我为什么需要吗?

而对于零食来说,传播对我来说并不重要,但交换却很关键 ))))

 
sdm:


你知道我是如何测试的吗?你看到我的专家了吗?你要告诉我我做得最好吗?

还有一件事,我不关心价差,但我关心交换)))),有不同的专家。


或者你是这样的。或者你还没有学会如何提问?
 
sdm:


你知道我是如何测试的吗?你知道我为什么需要吗?

而对于小吃,我不关心传播,但我关心交换))))。


好吧,有什么好知道的,如果收取利息,我最好不要发表意见......至于交换,我的订单漂浮了一年,交换对我来说一点都不麻烦。

在这段时间里,利率 是否有时间变化,或者你用对未来的预测把它全部安排好?

 
Vinin:

或者说是这样的。或者,也许你还没有学会如何问问题。
这些问题是反问句,不是针对每个人,只是作为评论的一部分,你的链接是不恰当的。
 
sdm:
这些问题是反问句,不是针对每个人,而是作为评论的一部分,你的链接是不合适的。

再有一个特技,你就会被关进狗窝。因提出冗长的问题而不适当地对待论坛的其他成员
 
splxgf:


好吧,有什么好知道的,如果利息在累积,我还是不要发表意见了......至于交换,我有一年的订单,交换对我来说一点都不麻烦。

在这段时间里,利率是否有时间变化,还是说你对未来的预测都有时间安排了?

我再说一遍,所有的专家(系统)都是不同的,我在一年后(在一些交易上)把所有的利润都吃掉了,我用低自由资金获得了良好的余额增长,我获得什么样的利润并不重要,我不做预测,我努力使用我所有的东西。