问吧! - 页 169

 

离线图表指标

Kalenzo:
没有什么特别的,你需要在指标里面编码。只要把指标从nagivator拖放到离线图表上就可以了。首先用metatrader提供的正常数据进行尝试,例如eurusd。如果该指标在eurusd上能工作,而在NYSE上不能工作,那么这意味着该指标的计算方式有误,需要修正/调整(例如,也许它需要四舍五入,或者在计算过程中产生错误,如零除法)。

嗨,Kalenzo。

谢谢你的回复。 MT4平台的指标运行良好。 是一个个人编码的自定义指标无法工作。 我注意到代码中的货币符号。 我想知道我是否需要将货币对 GBPUSD的符号改为NYSE的符号? 我还想知道指标如何工作。 指标在哪个文件夹里,是原来安装在平台上的指标,还是你下载了一个免费的自定义编码指标?

谢谢!!

 
winsumloosesum:
你好,Kalenzo。

谢谢你的答复。 MT4平台的指标工作得很好。 是一个个人编码的自定义指标无法工作。 我注意到代码中的货币符号。 我想知道我是否需要将货币对GBPUSD的符号改为NYSE的符号? 我还想知道指标如何工作。 指标在哪个文件夹里,是原来安装在平台上的指标,还是你下载了一个免费的自定义编码的指标?

谢谢!!

你好!

是的,你肯定需要检查指标代码。如果你的指标没有使用Symbol()函数(或者在需要的地方用NULL值代替符号),那么这就是100%的问题了。通常情况下,指标会从它们所连接的图表中转换数据,这就是为什么原始的MT4指标可以工作。然而,在自定义指标中,你可以从其他符号/时间段获取数据,然后你需要手动指定你希望使用的数据。例如,你可以使用欧元兑美元作为基础,同时使用英镑兑美元和美元兑瑞士法郎作为一些其他参数进行计算。

你需要检查指标代码,并将符号改为你希望计算的纽约证券交易所。然后它就可以正常工作了。

 

再次感谢您的帮助

再次感谢您的帮助。

 

调试问题

我写了一个基本的EA来了解指标的功能,但我有一些惊讶。首先是重绘指标,现在是非常基本的指标。

为了理解这些数字,我使用print()函数 在回测过程中在日志报告中打印数值。但打印功能似乎干扰了日志的打印,我失去了日志的一大部分内容。

有什么想法吗?这里是我的代码的摘录

//----+ 定义交易的信号

if (kline[1] < Level_Up) // 在临界点之下

if (kline[0] > dline[0]) // 主超额信号

如果 (kline[0] > kline[1]) // 主线必须上升

if (dline[0] > 0 ) { //信号必须保持在零水平 < dline[1]) { //之前的主力在信号之下,所以我们向上跨越了

BUY_Sign = true;

如果(Debug) {

Print ("Longopen K0 ",DoubleToStr(kline[0],Digits)," K1 ",DoubleToStr(kline[1],Digits) 。

"K2",DoubleToStr(kline[2],Digits), "K3",DoubleToStr(kline[3],Digits))。

Print (" D0 ",DoubleToStr(dline[0],Digits), " D1 ",DoubleToStr(dline[1],Digits), " D2 ",DoubleToStr(dline[2],Digits)。

"D3",DoubleToStr(dline[3],Digits))。

}

}

谢谢你的帮助

马塞尔

 

请帮助我!我不是一个程序员,但我在这里尽力而为。如果有任何关于我的指标不能工作的建议,我将不胜感激!!。

谢谢你的帮助

#属性 indicator_separate_window

#属性 indicator_buffers 4

#属性 indicator_color1 LimeGreen

#属性指示器_颜色2 火砖

#属性指示器_颜色3 绿色

#属性指示器_颜色4 红色

#属性指示器宽度1 2

#属性指示器_宽度2 2

#属性指示器宽度3 2

#perty indicator_width4 2

//---------------------------------------------------------------------indicator parameters

extern int FastEMA=12;

extern int SlowEMA=26;

extern int SignalSMA=9;

//---------------------------------------------------------------------indicator buffers

double OsmaBuffer[];

double Spm;

double Smm;

double Spmaks1;

double Spmaks2;

double Smmin1;

双倍Smmin2。

双重nou[]。

double ver[];

双倍OsMAUP[]。

双倍OsMADOWN[]。

//+------------------------------------------------------------------+

//|自定义指标初始化函数|

//+------------------------------------------------------------------+

int init()

{

//--------------------------------------------------------------------2 额外的缓冲区被用于计数。

IndicatorBuffers(4)。

//--------------------------------------------------------------------drawing settings

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexBuffer(0,OsMAUP);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexBuffer(1,OsMADOWN);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(2,159);

SetIndexBuffer(2,Spmaks1);

SetIndexStyle(3,DRAW_ARROW);

SetIndexArrow(3,159);

SetIndexBuffer(3,Smmin1);

SetIndexDrawBegin(0,SignalSMA);

IndicatorDigits(Digits+2)。

//------------------------------------------------------------------- 名称为数据窗口和指标子窗口的标签

IndicatorShortName("OsMA Marius("+FastEMA+", "+SlowEMA+", "+SignalSMA+")")。

//-------------------------------------------------------------------initialization done

返回(0)。

}

//+------------------------------------------------------------------+

//| 振荡器的移动平均数 |

//+------------------------------------------------------------------+

开始()

{

int limit;

int counted_bars=IndicatorCounted()。

//------------------------------------------------------------------- 最后一个被计数的柱子将被重新计数。

如果(counted_bars>0) counted_bars--;

limit=Bars-counted_bars。

//-------------------------------------------------------------------Main Loop

for(int i=0; i<limit; i++)

{

OsmaBuffer=iOsMA(NULL,0,FastEMA,SlowEMA, SignalSMA,PRICE_WEIGHTED,i)。

nou = OsmaBuffer;

ver = OsmaBuffer;

如果(OsmaBuffer > 0)

{

OsMAUP = OsmaBuffer;

OsMADOWN = 0。

}

否则

{

OsMADOWN = OsmaBuffer;

OsMAUP = 0;

}

//-------------------------------------------------------------------Cross Down

如果((nou0))

{

Spmaks1 = Spmaks2;

如果(Spmaks2 > 0)

{

Spmaks2 = 0。

}

}

//-------------------------------------------------------------------Cross Up

如果((nou>0)&&(ver<0))

{

Smmin1 = Smmin2;

如果(Smmin2 < 0)

{

Smmin2 = 0。

}

}

//-------------------------------------------------------------------During Swing

if(ver > 0)

{

Spm = ver;

if((nou > ver) || (nou == ver))

{

Spm = nou。

}

如果((Spm > Spmaks2) || (Spm == Spmaks2))

{

Spmaks2 = Spm。

}

}

否则

{

Smm = ver;

if((nou < ver) || (nou == ver))

{

Smm = nou。

}

如果((Smm < Smmin2) || (Smm == Smmin2))

{

Smmin2 = Smm。

}

}

}

//--------------------------------------------------------------------done

return(0);

}

//+------------------------------------------------------------------+

 

如何在最近的20个条形图中画线

我有一个问题!

我想有一个关于移动 平均线的指标。

它总是在最近的20个柱子中画线。

但是我不知道怎么写。

我希望你能帮助我,提供一个这样的指标。

非常感谢!

 

大家平安。

希望大家一切都好。

我的问题对于那些在编程领域有资格的人来说是一个相当简单的问题。

我有一个专业的电子表格,使用3个指标的原始状态,为我创建。这是一个4个策略系统,在一个电子表格中编码,3个指标以不同的组合进行交易。只是一个小的历史,但这部分实际上是不相关的。

3个指标都各自使用两个缓冲区,它们唯一的变量是 "CountBars"。由于它们处于无法优化的状态,因为唯一可调整的选项是 "CountBars",所以我有一个聪明的想法,使用Jurik的算法作为一种预处理。这样我就可以保持指标的原始性,即反应迅速,但有几个 "小插曲",同时添加一个平滑因子,仍然非常灵敏,同时滞后性低。因此,我请本论坛的一位知名成员协助我完成这部分项目,他们做到了,而且我想说的是相当完美。然而,由于他们超越了职责的要求,我不想让他们再帮我任何忙,例如用新的Jurik平滑版本的相同指标来代替他们的原始下属。

既然如此,我想,"这有什么难的",我想我知道的足够多,可以自己做。只需改变3个iCustom实例中被调用的名称,在 "extern "部分以及iCustoms部分添加新的变量,(现在JRK smthd版本的指标仍然使用2个缓冲区,但它们有一个额外的变量,共2个:"SmoothLength "和 "SmoothPhase"。"CountBars "被删除了。),瞧!!!。要是有这么简单就好了。我做了这些事情并编译了它,没有错误/警告。然而,当我试图进行回测/正向 测试时,没有交易.....。

我错过了什么吗?任何和所有的建议都将得到极大的赞赏。

 

比兹兹姆!

 
forex_for_life:
祝大家平安。

希望大家一切都好。

我的问题对那些在编程领域有资格的人来说是一个相当简单的问题。

我有一个专业的电子表格,使用3个指标的原始状态,为我创建。这是一个4个策略系统,在一个电子表格中编码,3个指标以不同的组合进行交易。只是一个小的历史,但这部分实际上是不相关的。

3个指标都各自使用两个缓冲区,它们唯一的变量是 "CountBars"。由于它们处于无法优化的状态,因为唯一可调整的选项是 "CountBars",所以我有一个聪明的想法,使用Jurik的算法作为一种预处理。这样我就可以保持指标的原始性,即反应迅速,但有几个 "小插曲",同时添加一个平滑因子,仍然非常灵敏,同时滞后性低。因此,我请本论坛的一位知名成员协助我完成这部分项目,他们做到了,而且我想说的是相当完美。然而,由于他们超越了职责的要求,我不想让他们再帮我任何忙,例如用新的Jurik平滑版本的相同指标来代替他们的原始下属。

既然如此,我想,"这有什么难的",我想我知道的足够多,可以自己做。只要改变3个iCustom实例中的名称,在 "extern "部分和iCustoms部分添加新的变量,(现在JRK smthd版本的指标仍然使用2个缓冲区,但它们有一个额外的变量,共2个:"SmoothLength "和 "SmoothPhase"。"CountBars "被删除了。),瞧!!!。要是有这么简单就好了。我做了这些事情并编译了它,没有错误/警告。然而,当我试图进行回测/正向测试时,没有交易.....。

我错过了什么吗?任何和所有的建议都将得到极大的赞赏。

你好,Ffl。

试试iCustom(NULL,0," 指标名称" SmoothLength,SmoothPhase,0,1)买入,iCustom(NULL,0," 指标名称" SmoothLength,SmoothPhase,1,1)卖出,只要把 "指标名称 "改为你想调用的指标。

 
mrtools:
你好,请尝试iCustom(NULL,0," 指标名称" SmoothLength,SmoothPhase,0,1)买入和iCustom(NULL,0," 指标名称" SmoothLength,SmoothPhase,1,1)卖出,只需将 "指标名称 "改为你要调用的指标。

和平T先生。

谢谢你的指导。我根据你的建议做了这些修改,E.A.仍然在编译,没有错误/警告,但也仍然没有进行任何交易。不久将尝试另一个解决方法.....