编码帮助 - 页 254

 
thefxpros:
你好。

我在使用icustom在MTF中转动一些指标,很有乐趣。该指标可以工作,但不能正确显示颜色和箭头,为什么?

请问错误在哪里?

wilders_trailing_stop_mtf.mq4

wilders_trailing_stop.mq4

//------------------------------------------------------------------

#property copyright "thefxpros"

#property link "thefxpros@katamail.com"

//------------------------------------------------------------------

#property indicator_chart_window

//#property indicator_color1 Orange

//#property indicator_color2 LimeGreen

//#property indicator_color3 LimeGreen

//#property indicator_color4 Orange

//#property indicator_width3 1

//#property indicator_width4 1

//

//

//

extern int TimeFrame = 0;

extern int Length = 2;

extern double Coeff = 1.75;

extern int LineWidth = 1;

extern int ArrowWidth = 1;

extern color UpLineClr = LimeGreen;

extern color DnLineClr = Orange;

extern color UpArrowClr = LimeGreen;

extern color DnArrowClr = Orange;

//

double WTS[];

double WTSDn[];

double arrUp[];

double arrDn[];

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

//| |

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

int init()

{

IndicatorBuffers(4);

SetIndexBuffer(0,WTS); SetIndexStyle(0,DRAW_LINE, EMPTY, LineWidth, DnLineClr);

SetIndexBuffer(1,WTSDn); SetIndexStyle(1,DRAW_LINE, EMPTY, LineWidth, UpLineClr);

SetIndexBuffer(2,arrUp); SetIndexStyle(2,DRAW_ARROW, EMPTY, ArrowWidth, UpArrowClr); SetIndexArrow(2,SYMBOL_ARROWUP);

SetIndexBuffer(3,arrDn); SetIndexStyle(3,DRAW_ARROW, EMPTY, ArrowWidth, DnArrowClr); SetIndexArrow(3,SYMBOL_ARROWDOWN);

IndicatorShortName("Wilders trailing stop MTF ("+Length+","+Coeff+")");

Length = MathMax(Length,1);

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 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("Wilders trailing stop MTF ("+TimeFrameStr+")");

return(0);

}

//----

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

//| MTF function |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);

for(i=0,y=0;i<limit;i++)

{

if (Time<TimeArray[y]) y++;

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

Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

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

WTS=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,0,y);

WTSDn=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,1,y);

arrUp=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,2,y);

arrDn=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,3,y);

}

return(0);

}

//+------------------------------------------------------------------+[/PHP]

Thefxpros

你注释了你必须声明绘图缓冲区的部分

这一部分。

[PHP]#property indicator_chart_window

//#property indicator_buffers 4

//#属性 indicator_color1 Orange

//#属性 indicator_color2 LimeGreen

//#属性 indicator_color3 LimeGreen

//#属性 indicator_color4 橙色

//#属性 indicator_width3 1

//#property indicator_width4 1

删除这些行的注释,就可以工作了

 
mladen:
Thefxpros

你注释了你必须声明绘图缓冲区的部分

这一部分。

#property indicator_chart_window

//#property indicator_buffers 4

//#property indicator_color1 Orange

//#property indicator_color2 LimeGreen

//#property indicator_color3 LimeGreen

//#property indicator_color4 Orange

//#property indicator_width3 1

//#property indicator_width4 1
把这些行的注释去掉,就可以工作了

是的,我知道,但我在后面说明了,这还不够吗?我必须总是在开始时就说明吗?

我记得我经常这样做,在以前的build metaeditor中,我记得它是有效的,难道我记错了?

 
thefxpros:
是的,我知道,但我后来指定了,这还不够吗?我记得我经常这样做,在以前的build metaeditor中,我记得它是有效的,难道我记错了吗?

Thefxpros

在开始时,你指定的是绘图缓冲区。之后你可以指定计算缓冲区。如果你不指定#property indicator_buffers numberOfDrawningBuffer,那么就不会有任何东西被画在墙上。

 

显示你所有的Speard历史。请帮助我

 

有谁能帮我检查一下这个EA的CloseInMA功能

我已经在这里停留了很多天,我找不到解决方案

谢谢你。

附加的文件:
testing1.5.mq4  38 kb
 
stevenpun:
有谁能帮我检查一下这个EA的CloseInMA函数。

我在这里坚持了很多天,但我找不到解决办法

谢谢你。

冯小刚

试着像现在写的那样做

附加的文件:
 

你好,好心的大师,我请求有人帮助编码,然后建立一个机器人(EA)的版本。

指示器--分别在结束于5、15、31、67的价格上自动绘制水平线(最好是断线)。例如在UJ 103.05, 102.67, 103.15等。线的长度应该是数学尺子的1英寸长,下面有这些数字,这样我就会有一个像样的图表,因为我已经有了几个线。

PS-4位和5位数的经纪人兼容

 

EA的规则

买入

在价格从下往上移动3个点之前,下挂买入止损单。例如,魔法数字5,价格目前在UJ 103.02,放置挂单 买入@103.05。

卖出

当价格从上方接近魔法数字3个点时,放置挂单卖出止损。例如,目前价格为103.08,卖出止损为103.05。

SL和TP各25/50点。

当交易达到+3点利润时,移动止损锁定+1利润,移动5锁定4,移动8锁定7,移动12锁定10。

最大开仓或浮动交易或挂单=1,直到停止新的交易。

每日最大平仓量3%,一旦达到,EA应停止交易。

默认手数为0.1(10,000)。

24小时交易

P.S: EA应该有一个选项来隐藏神奇的数字,追踪止损,从我的经纪人那里获取利润/止损,并且应该是4/5位数兼容。默认的货币对是UJ。

如果能尽快编好这个程序,我将非常感激。

 
mladen:
stevenpun 试着像现在这样做。

你好mladen。

我以前也试过,但它不工作。

这就是为什么我很困惑的原因。

希望你能帮我看看问题出在哪里。

谢谢你。

 
stevenpun:
你好 mladen ,

我以前也试过,但它没有用。

这就是为什么我很困惑的原因。

希望你能帮我看看问题出在哪里。

谢谢你。

在你发布的版本中,你比较的是常数(Fastma、Dn_slowma和Up_slowma是用于移动平均线的周期,而不是移动平均线的值)。

现在改成了比较移动平均线的值。如果这不是你所想的,那么你必须改变它,但你不能比较恒定的数值,并期望它们在每个柱子之间变化。

检查这些是否是你想象中作为出场条件的准确的移动平均线条件(在GetSignalClose()函数 中),但要继续比较移动平均线的值而不是这些移动平均线的参数。

原因: