编码帮助 - 页 294

 
mladen:
气象

你必须考虑到这一点,否则它将无法正常工作。

调用带有此类参数的指标的最佳方法是以下方法。

iCustom(NULL,targetTimeFrame,indicatorName,"",...,buffer,shift)。

所以,用""来表示该参数

谢谢你,Mladen,像往常一样,你很有帮助。

 

有谁能让这个指标在开盘时绘制出来? TradeStation中的版本会在价格实际交易通过该值之前,在较低的时间框架条上绘制一个较高的时间框架指标图(当存在时)。然而,在MT4版本中,情况并非如此,它不会在价格交易通过它之前绘制。

非常感谢。

斯科特

***

#property indicator_chart_window#(属性:图表窗口)

#属性 indicator_buffers 2

#属性 indicator_color1 白色

#属性 indicator_color2 白色

//#属性 indicator_width1 5

//#属性 indicator_width2 5

//---- 输入参数

/************************************************** ***********************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

周期_W1 10080

PERIOD_MN1 43200

你必须使用你想使用的时间框架的数值。

当你用指标输入设置 "TimeFrame "值时,你必须使用你想使用的时间框架的数值。

************************************************** ************************/

extern int TimeFrame = 240;

extern int num = 6;

extern color Color = White;

double vftop[];

double vfbot[];

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

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

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

int init()

{

//---- 指标

IndicatorBuffers(2);

SetIndexBuffer(0, vfbot);

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(0, 117);

SetIndexEmptyValue(0, 0);

SetIndexBuffer(1, vftop);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(1, 117)。

SetIndexEmptyValue(1, 0)。

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 :TimeFrameStr="Period_H4"; break;

case 1440 :时间框架Str="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

默认情况下 : TimeFrameStr="当前时间框架"。

}

IndicatorShortName("MTF_VolumeFinder ("+TimeFrameStr+")")。

//----

return(0);

}

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

//|自定义指标去初始化功能|

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

int deinit()

{

//----

//----

return(0);

}

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

//|自定义指标迭代函数|

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

int start()

{

int counted_bars=IndicatorCounted()。

int i = Bars - counted_bars;

if(counted_bars == 0) i = Bars - num*2;

int j = 0;

双倍的t1,t2。

int y = 0;

while(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time);

t1 = iLow(Symbol(), TimeFrame, y);

t2 = iHigh(Symbol(), TimeFrame, y);

for(j = y+1; j < y + num; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j))。

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j))。

}

如果(t1 <= t2)

{

vftop = t2;

vfbot = t1;

}

i--;

}

//----

return(0);

}

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

 
scott TTM:
在TradeStation的版本中,在价格实际交易通过该值之前,会在较低的时间框架条上绘制较高时间框架的指标图(当存在时)。然而,在MT4版本中,情况并非如此,它不会在价格交易通过它之前绘制。

非常感谢。

斯科特

***

#属性 indicator_chart_window

#属性 indicator_buffers 2

#属性 indicator_color1 白色

#属性 indicator_color2 白色

//#属性 indicator_width1 5

//#属性 indicator_width2 5

//---- 输入参数

/************************************************** ***********************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

周期_W1 10080

PERIOD_MN1 43200

你必须使用你想使用的时间框架的数值。

当你用指标输入设置 "TimeFrame "值时,你必须使用你想使用的时间框架的数值。

************************************************** ************************/

extern int TimeFrame = 240;

extern int num = 6;

extern color Color = White;

double vftop[];

double vfbot[];

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

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

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

int init()

{

//---- 指标

IndicatorBuffers(2);

SetIndexBuffer(0, vfbot);

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(0, 117);

SetIndexEmptyValue(0, 0);

SetIndexBuffer(1, vftop);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(1, 117)。

SetIndexEmptyValue(1, 0)。

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 :TimeFrameStr="Period_H4"; break;

case 1440 :时间框架Str="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

默认情况下 : TimeFrameStr="当前时间框架"。

}

IndicatorShortName("MTF_VolumeFinder ("+TimeFrameStr+")")。

//----

return(0);

}

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

//|自定义指标去初始化功能|

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

int deinit()

{

//----

//----

return(0);

}

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

//|自定义指标迭代函数|

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

int start()

{

int counted_bars=IndicatorCounted()。

int i = Bars - counted_bars;

if(counted_bars == 0) i = Bars - num*2;

int j = 0;

双倍的t1,t2。

int y = 0;

while(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time);

t1 = iLow(Symbol(), TimeFrame, y);

t2 = iHigh(Symbol(), TimeFrame, y);

for(j = y+1; j < y + num; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j))。

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j))。

}

如果(t1 <= t2)

{

vftop = t2;

vfbot = t1;

}

i--;

}

//----

return(0);

}

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

你能贴出tradestation的原始代码吗?

 

我搜索了一下,但找不到。 我在2004年买了这个指示器。

 
scott TTM:
我搜索了一下,但没有找到。 我是在2004年买的这个指标。

我问这个问题是因为我想对代码进行比较--有时简单的语言代码看起来是一个简单的任务,可以转换为metatrader,但差异太大,在某些情况下,转换是100%完成的。

 

请帮助我

你好

能否请您帮助使其适用于MT4 Build 600+?

谢谢您的帮助。

附加的文件:
sap_robot.mq4  32 kb
forexhacked.mq4  19 kb
 

WPR_MA错误

你好mladen!

我可以请求一个小小的编码帮助吗?

我,有点,写了一个指标,在一个指标窗口中对其他4个WPR进行平均。

如果你加载模板,你可以看到WPR的MA之间的差异。

上面是指标,下面是手动混合。我们的目标是,把手动的变成一个指标。

我问她为什么要这样做?我在哪里把WPR_MA编码错了?

谢谢你的时间

阿德里安

附加的文件:
 
adledion:
你好 mladen!

我可以寻求一点编码方面的帮助吗?

我,有点,写了一个指标,是在一个指标窗口中对其他4个WPR进行平均。

如果你加载模板,你可以看到WPR的MA之间的差异。

上面是指标,下面是手动混合。我们的目标是,把手动的变成一个指标。

我问她为什么要这样做?我在哪里把WPR_MA编码错了?

谢谢你的时间

阿德雷迪恩

阿德里安

在模板中,ma只适用于一个WPR(WPR(50)在该模板的情况下)。你不能将ma应用于多个指标,这就是为什么你的指标和模板之间存在差异。

试试吧 - 将你的指标中的所有WPR周期设置为50,并将指标的值与模板中的ma的前一个值(由于你在指标中对iMAOnArray()使用了shift one,所以是前一个)进行比较,你会发现在这种情况下你的值是完全相同的。

 
mladen:
阿德里安

在模板中,ma只应用于一个WPR(该模板中的WPR(50))。你不能将ma应用于多个指标,这就是为什么你的指标和模板之间存在差异。

试试吧 - 将你的指标中的所有WPR周期设置为50,并将指标的值与模板中的ma的前一个值(前一个,因为你在指标的iMAOnArray()中使用了shift one)进行比较,你会发现你在这种情况下的值是完全相同的。

哇,谢谢你,没有挖到那么深

编辑:这意味着,在手册中混合的ma只是在一个wpr上? 第一个指标数据......?所以基本上手册是错误的(计算一个wpr ma),相比之下,我原来的想法是计算3或4个wpr ma。

 

Mladen ,

我有点不解,这2个指标是重绘的吗?https://www.mql5.com/en/forum/172895

你知道这些柱状图代表什么吗?谢谢。

附加的文件:
forexmtn.mq4  3 kb
rd-combo.mq4  11 kb