#property indicator_chart_window#property indicator_buffers 1#property indicator_color1 Blue#property indicator_width1 2//==============================externint hour = 5;
externint hrma = 4;
//==============================double fx[];
double mai;
int p,hr,hrp;
//************************************************************int init()
{
SetIndexBuffer(0,fx);
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) mai=iMA(NULL,0,p,0,0,0,i); // сам простой мувинг, в момент, когда час равен нашему и не неравен на предыдущем баре
fx[i]=mai; // просто приравнивание индикаторного буффера к глобальной переменной
}
return(0);
}
//***************************************************************
ti=Time[i]; // время текущего бара
tiip=tii; // предыдущее состояние времени
tii=(ti-dth)/dtd*dtd;// время начала суток сдвинутое на нужный нам часif (tiip!=tii)
但结果是错误的!!!!!!!!!!!!!!!我通过Python的一个例子
if(TimeDay(Time[i]) != TimeDay(Time[i+1]))
一般的观点是这样的
int start()
{
double LastHigh,LastLow;
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(TimeDay(Time[i]) != TimeDay(Time[i+1]))
{
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);
}
请帮助我解决这个问题。我希望这条线路是正确的。但缓冲区给出的只是一条线,它在中间应该是平的,就像中枢线....。我有一条线是从前一天的X小时的水平来的。
请想办法....我搞不清楚((()
好吧,假设你需要在任何时间框架上的5点钟方向上进行一个muving,当然不是在日线上,而是在一个较小的时间框架上。比方说,从一点钟或更少的时间开始。
并把它画到第二天的5点钟。这里是如何做到的。
是的,我做了,同样的答案...什么与
但结果是错误的!!!!!!!!!!!!!!!我通过Python的一个例子
一般的观点是这样的这仍然是不正确的结果。
问题很简单,把线HOW的枢轴是平的,但不是按枢轴水平,而是从某一小时的值。就是这样!!!!。而我很纠结,不明白怎么......把X小时到Time[0]的那条线RIGHT起来 !!!!!!!!!!!!!!!!
是的,我做了,同样的答案...什么与
但结果是错误的!!!!!!!!!!!!!!!我通过Python的一个例子
一般的观点是这样的这仍然是不正确的结果。
问题很简单,把线HOW的枢轴是平的,但不是在枢轴水平,而是从某个小时的值。就是这样!!!!。而我在挣扎,不明白如何......将X小时到Time[0]这一行进行RANGE!!!!!!!!!!!!!!!!。
好吧,我在那里写了一个更简单的例子。
如果我们在所需时间点上写了一些值,那么它就简单地等同于这个值。
for(int i=cbi; i>=0; i--)
{
hrp=TimeHour(Time[i+1]);
hr=TimeHour(Time[i]);
if(hr==hour && hrp! =hr) X=
fx[i]=x;//只是将指标缓冲区等同于全局变量
}
任何事情都一样,支点或其他。简单地说,如果它是一个日线枢轴,那么日线水平就会在这一点上计算出日线的数量。
例如,这里是每天5点钟的高点。所有其他级别也可以这样做。把代码复制到一个空的指标中,编译后看看,我想这是差不多的。
而如果你不需要画所有的日子,而只画最后一天,那就有一点不同的做法。我只是建议采取更专业的方法。
大家好。如果我想把它们放在图表上,我就不必自己去画。例如,我有一个EA,我计算了一些数值,如iMA。它是如何在图表上绘制指标的?我想是的,使用特殊功能 或通过趋势线"手动"?有没有一种更简单的方法来显示带有EA参数的指标?
我没有见过,也许有人在论坛上写过通过趋势线映射缓冲区的搜索。
或者自己写,没有什么复杂的。
你们好。如何在图表中添加指标?也就是说,我有一个专家顾问,其中计算了iMA的一些值。如何在图表上绘制指标?我想是的,使用特殊功能或通过趋势线 "手动"?有没有一种更简单的方法来显示带有EA参数的指标?
如果EA是附在图表上的,而且里面有东西,那么为了看清它是什么,我们需要创建一个功能完全相同的指标,并设置与EA中相同的参数,然后将它们应用于图表。或者如果是一个标准的MT功能,如muving,它也必须应用于一个图表,并且与专家顾问中的参数设置相同。专家顾问本身并不在图表上绘制指标。只有在测试后才会在策略测试器中绘制。在交易过程中,它不会这样做。另一种方法,但很麻烦,就是绘制对象,比如破折号 ObjectCreate(name+Time[0],OBJ_ARROW,0,Time[0],price); ObjectSet(name+Time[0],OBJPROP_ARROWCODE,4); 或趋势线段,但这时必须保存前一根棒上的函数状态。但是,当指标不能被应用时,例如,当一些东西必须由Askas绘制,而MT没有存储Askas的数组或一些两对的合成。因此,你必须扭动它来控制它。
那么,你也可以制作一个模板(tpl),在上面附加你需要的东西。但实际上,最好是制作一个自定义指标,并手动设置和编写一个新的配置文件,当你想交易时,只需调用相应的配置文件。这是一种处于幻想边缘的技术。
1) 用预设的EA和指标参数制作模板
2) 使用GV将参数转移到指标
3) 使用WINAPI从EA调用指标到图表上
我更喜欢通过Arrow对象从EA中绘制指标图
敬礼!!!
我不明白为什么开盘=收盘=高价=低价--没有区别,所有的价格都是一样的,在被创建的文件里有四列相同的价格。下面是EA卸载数据的代码。