[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 272

 

下午好,先生们,程序员们!请看一下这个非常有趣的专家顾问!我想解决一些问题,即:我真的想在它身上附加(最好是可切换的)可定制的获利 拖网。我想(也希望)对专家来说,这不会太难。

/*在本论坛上进行反编译是违法的。第一次警告。重复--永远禁止(FAQ)*/

 
Andrew1001:

下午好,先生们,程序员们!请看一下这个非常有趣的专家顾问!我想解决一些问题,即:我真的想在它身上附加(最好是可切换的)可定制的获利拖网。我想(也希望)对专家来说,这不会太难。

/*在本论坛上进行反编译是违法的。第一次警告。重复--永远禁止(FAQ)*/



这就对了!然后,如何规范布局,就有可能看到它,改善它?(向版主提问)
 
ANG3110:

好吧,我在那里写了一个更简单的例子。

***

如果你不想画所有的日子,只画最后一天,那就有一点不同的做法。我只是建议采取更专业的方法。

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property indicator_width1 2
//==============================
extern int    hour = 5;
extern int    hrma = 24;
//==============================
double fx[];
double hm;
int p,hr,hrp;
//************************************************************
int init()  
{   
   SetIndexBuffer(0,fx); SetIndexEmptyValue(0,EMPTY); 
   
   p=hrma*60/Period();
   
   return(0);
}
//************************************************************
int start()
{
   int cbi=Bars-IndicatorCounted()-1; if (cbi<0) return(-1);
   if (cbi==1) cbi--;
   if (cbi>1) cbi=Bars-p-1;
   //-------------------------------
   for(int i=cbi; i>=0; i--)
   {
      hrp=TimeHour(Time[i+1]); 
      hr=TimeHour(Time[i]);
      
      if (hr==hour && hrp!=hr) 
      {
         fx[i+1]=EMPTY;
         hm=Close[i]; // я вставил закрытие оно работает на нижних таймфремах

//КАК ТУТ вставить High Low для  hour = 5 для ВСЕХ таймфремов ниже ограниченного таймфрема???????????

      }
      
      fx[i]=hm; 
   }
  
   return(0);
}
//***************************************************************

只是不清楚如何插入某一特定小时的iHigh和iLow,同一小时=5;???????????,你又得到了同样的鸡蛋......。

专业上我是用iClose iHigh iLow,但我忘了这个变体的代码是怎么写的......我记得这个原则,但我忘了细节。

int start()
  {
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(Period() > 240)  return(-1);

int LastPrevDay = iBars(Symbol(), PERIOD_D1);
int barnH= iBars(Symbol(),PERIOD_H1);

for (int i = LastPrevDay-1; i >= 0; i--)
{
datetime NowDay = iTime(Symbol(), PERIOD_D1, i);
int PrevDay = iBarShift(Symbol(), PERIOD_D1, NowDay);
datetime LastD =  iTime(Symbol(), PERIOD_D1, i-1); 
int LastDay = iBarShift(Symbol(), PERIOD_D1, LastD);

if(PrevDay>LastDay)  /// что было дальше НЕПОМНЮ!!!!, НО вариант ЛУЧШЕ, можно непарясь ставить уровни iHigh iLow iClose iOpen
{ 
datetime x_time= StrToTime(TimeToStr(NowDay, TIME_DATE)+" "+shift_time); 
int x_shift= iBarShift(Symbol(),PERIOD_H1,x_time);
double CL= iClose(Symbol(),PERIOD_H1,x_shift);
}

buffer[i]= CL;
}

return(0);
}

请帮助我了解如何做到这一点???????????????????

 

再次请您帮助PLEASE!!!!

如何正确地将特定(H1)时间框架的iHigh iLowiClose????,以便在以下图表中正确读取????。

int start()
  {
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(Period() > 240)  return(-1);

int LastPrevDay = iBars(Symbol(), PERIOD_D1);
int barnH= iBars(Symbol(),PERIOD_H1);

for (int i = LastPrevDay-1; i >= 0; i--)
{
datetime NowDay = iTime(Symbol(), PERIOD_D1, i);
int PrevDay = iBarShift(Symbol(), PERIOD_D1, NowDay);
datetime LastD =  iTime(Symbol(), PERIOD_D1, i-1); 
int LastDay = iBarShift(Symbol(), PERIOD_D1, LastD);

if(PrevDay>LastDay)  
/// что было дальше НЕПОМНЮ!!!!, НО вариант ЛУЧШЕ, можно непарясь ставить уровни iHigh iLow iClose iOpen
{ 
datetime x_time= StrToTime(TimeToStr(NowDay, TIME_DATE)+" "+shift_time); 
int x_shift= iBarShift(Symbol(),PERIOD_H1,x_time);
double CL= iClose(Symbol(),PERIOD_H1,x_shift);
}

buffer[i]= CL;
}

return(0);
}
 

你好,请你告诉我怎么写才正确?

问题是,ObjectSetText没有做任何事情,所以我得到的是文本而不是顶点标题。

ObjectCreate( "вершина",  OBJ_TEXT , WindowOnDropped( ) , Time[бар_вершина],  вершина+(10*Point)) ;  
       ObjectSet(  "вершина",  OBJPROP_COLOR, Crimson) ;
    ObjectSetText( "вершина", "вершина", 5, NULL, CLR_NONE) ;   
 
orb:

我不明白为什么在创建的文件中Open=Close=High=Low--没有区别,所有的价格都是一样的,四列的价格都一样。下面是专家顾问卸载数据的代码。


没有工具和时间框架的相关数据 -- 打开正确的图表。

代码中未更正的条目。

FileWrite(h,Wtime,Wday,DoubleToStr(iClose("GBPUSD",0,0),MarketInfo(Symbol(),MODE_DIGITS)),..

正确。

FileWrite(h,Wtime,Wday,DoubleToStr(iClose("GBPUSD",0,0),MarketInfo("GBPUSD",MODE_DIGITS)),..

如果条件得到满足,该代码就能发挥作用。

 
Roll:


没有工具和时间框架的相关数据 -- 打开正确的图表。

代码中的输入不正确。

正确。

只要条件得到满足,代码就能工作。

好吧,我试一试!)
 
nlp2311:

只是不清楚如何插入特定小时的iHigh和iLow,同一小时=5;???????????,又变成了同一个鸡蛋......

专业上我是用iClose iHigh iLow,但我忘了这个变体的代码是怎么写的......我记得这个原则,但我忘了细节。

帮助我了解如何做???????????????????


你可以在小时图及以下的图表上绘制小时时间框架的条形图,而不需要从另一个时间框架中提取价格。与iHigh 等链接不是很有用,因为它减慢了指标的速度,需要撞击其他时间框架。

如果有可能在一个时间框架内完成所有工作,那是最好的。

那么你如何在较小的时间范围内用每小时的数据实际地画线呢?情况是这样的。

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Gold
#property indicator_color4 Lime
//==============================
double H[],L[],O[],C[];
double hm,lm,om,cm;
int hr,hrp,di,f=0;
//************************************************************
int init()  
{   
   SetIndexBuffer(0,H);
   SetIndexBuffer(1,L);
   SetIndexBuffer(2,O);
   SetIndexBuffer(3,C);
   
   if (Period()>1440) f=1;
   
   di=60/Period();
   
   return(0);
}
//************************************************************
int start()
{
   if (f==1) {Comment("Период больше H1!"); return(0);}
   //-------------------------------
   int cbi=Bars-IndicatorCounted()-1; if (cbi<0) return(-1);
   if (cbi==1) cbi--;
   if (cbi>1) 
   {
      cbi=Bars-1;
      hm=High[cbi]; 
      lm=Low[cbi]; 
      om=Open[cbi]; 
      cm=Close[cbi]; 
   }
   //-------------------------------
   for(int i=cbi; i>=0; i--)
   {
      hrp=TimeHour(Time[i+1]); 
      hr=TimeHour(Time[i]);
      
      if (hrp!=hr) 
      {
         for (int j=i+1; j<=i+di; j++)
         {
            H[j]=hm;
            L[j]=lm;
            O[j]=om;
            C[j]=cm;
         }
         
         hm=High[i];
         lm=Low[i];
         om=Open[i];
         cm=Close[i];
      }
      else
      {
         if (High[i]>hm) hm=High[i];
         if (Low[i]<lm) lm=Low[i];
         cm=Close[i];
      }
      
      H[i]=hm;
      L[i]=lm;
      O[i]=om;
      C[i]=cm;
   }
   
   return(0);
}
//***************************************************************
 
ANG3110:


在小时图及以下的图表中,你可以绘制小时时间框架的条形图,而且不需要从另一个时间框架中提取价格。与iHigh等链接不是很有用,因为它减慢了指标的速度,需要撞到其他时间框架。

如果有可能在一个时间框架内完成所有工作,这是最理想的。

那么你如何在一个较小的时间框架上实际地画出小时线呢?嗯,大致上是这样的。


谢谢你的提示)。
 
Andrew1001:

这就对了!你如何把代码放在那里,以便你可以看它,来完善它?
向EA的作者索要源代码,并在他的允许下发布。