如何编码? - 页 81

 

需要帮助

你好,所有的编码员。

请告诉我如何根据蜡烛图来检查 价格的代码。我的意思是,我怎样才能检查当前的蜡烛是否触及MA线?如果您能提供帮助,我将非常感激。

Best Regards.......!

 
arsenic786:
你好,所有的编码员。

请告诉我如何根据蜡烛来检查价格的代码。我的意思是我如何检查当前的蜡烛是否触及MA线,以及我如何编码当前蜡烛的开盘价、最高价、最低价和收盘价低于MA线。如果您能提供帮助,我将非常感激。

Best Regards.......!

好吧,为了检查交叉,你必须比较之前的收盘价、当前的收盘价和移动平均线值(所以是iMa、Close[1]和Close[0])。

但是要检查蜡烛是否在移动平均线之下,你需要比较低价和高价以及iMa值。

 

滴答时间指标

我想建立一个指标,其中的一个元素是滴答的时间。谁能告诉我,这个功能 是否可以纳入?

谢谢

 

通过配对/时间框架进行扫描

你好。

我想通过一些货币对和货币对的一些时间框架进行扫描,以利用ADX等指标检测当前的环境(趋势、区间约束等)。这是为了帮助我根据我的标准选择最佳的货币对/时间框架来进行交易。

糟糕的办法是将环境检测EA附加到所有图表上,让它们将结果写入文件,然后在文件上做我自己的比较。然而,这将是非常繁琐的手工操作

有没有可能只将我的EA附加到一个图表上,并让该EA使用时间序列功能(如iClose、iOpen等)从所有货币对和时间框架中获取数据,然后将价格反馈给我的指标?

有没有人预见到第二种方法有什么问题?涉及太多的CPU处理?运行检查的时间会太长等?我不需要比5分钟更细的时间框架。

我是EA的新手,因此不知道它的性能。如果有任何帮助,我将非常感激。谢谢!!

 

以编程方式将EA附加到图表上

你好。

是否有可能以编程方式将EA附加到一个图表上?比如我现在正在运行EA1,我想让它在满足某些条件的情况下将EA2附加到另一个图表上。这可能吗?

 
meokoken:
你好。

我想通过一些货币对和货币对的一些时间框架,利用ADX等指标检测当前的环境(趋势、区间约束等)。这是为了帮助我根据我的标准选择最佳的货币对/时间框架来进行交易。

糟糕的办法是将环境检测EA附加到所有图表上,让它们将结果写入文件,然后在文件上做我自己的比较。然而,这将是非常繁琐的手工操作

有没有可能只将我的EA附加到一个图表上,让该EA使用时间序列功能(如iClose、iOpen等)从所有货币对和时间框架中获取数据,然后将价格反馈给我的指标?

有没有人预见到第二种方法有什么问题?涉及太多的CPU处理?运行检查的时间会太长等?我不需要比5分钟更细的时间框架。

我是EA的新手,因此不知道它的性能。如果有任何帮助,我将非常感激。干杯!!

你可以使用符号功能 来实现。例如,如果你想检查10个图表上的移动平均线和收盘价,例如10个来自不同时间框架的交叉点,但在当前的条形图上,那么它将看起来像这样。

double eurudMa = iMa("EURUSD", blablabla,PERIOD_X,0);

double eurusdClose = iClose("EURUSD",PERIOD_X);

如果你愿意,可以比较这些数值。

对其他指标也是如此。如果你想获得指定交叉盘的买入和卖出价格,以同样的方式使用MarketInfo函数。

谢谢

卡莱

 

信号线 的OsMA

编码员们,我需要你们的帮助。谁能在所附的OsMA指标上添加一条信号线?非常感谢您!

附加的文件:
osma.mq4  3 kb
 

如何创建这个数字版本?

嗨,伙计们。

我是一个初学者。

Wolfe很友好地创建了一个代码模板,我对它进行了修改。它运行得非常好,而且做了我想做的事情。

但是现在。

我正在考虑创建这个数字版本,类似于DIGISTOCH指标。

我想知道的是。

- 如何 "清除 "或 "刷新 "缓冲区?我似乎无法 "清除 "缓冲区的链接并创建新的缓冲区。

- 如何修改为不包括缓冲区?我想这可以节省一些内存吧?我试着删除SetIndexBuffer,但在MT4加载时,在专家终端窗口出现"零除法"错误。

- 下面的两个标签只显示一个值,H1值。它应该显示H1和H4的数字。所以它在这里不起作用。

- 我基本上想让它在一个屏幕上显示不同时间框架(从M1到MN1)的比率数字,就像DIGIStoch指标一样。

希望得到任何帮助。

请注意。

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

//| 2MA_RSI.mq4 |

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

#property copyright "Wolfe"

#property link "xxxxwolfe@gmail.com"

#property indicator_separate_window

#property indicator_level1 100

#property indicator_level2 80

#property indicator_level3 50

#property indicator_level4 20

#property indicator_buffers 4

#property indicator_color1 Black //RSI

#property indicator_color2 Blue //MA1

#property indicator_color3 Red //MA2

#property indicator_color4 Green //Ratio

int RSI_Timeframe=0;//0=current chart,1=m1,5=m5,15=m15,30=m30,60=h1,240=h4,etc...

int RSI_Period = 10;

int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

int MA1_Period = 10;

int MA1_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

int MA2_Period = 30;

int MA2_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double RSI[],MA1_Array[],MA2_Array[],MR_Ratio[];

double _RSI[],_MA1_Array[],_MA2_Array[],_MR_Ratio[];

string ShortName="MoR";

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators setting

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //RSI

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //EMA10

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1); //EMA30

SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2); //Ratio

SetIndexBuffer(0,RSI);

SetIndexLabel(0,"RSI");

SetIndexBuffer(1,MA1_Array);

SetIndexLabel(1,"MA1");

SetIndexBuffer(2,MA2_Array);

SetIndexLabel(2,"MA2");

SetIndexBuffer(3,MR_Ratio);

SetIndexLabel(3,"Ratio");

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName(ShortName);

return(0);

}

int start()

{

int i,limit = Bars - IndicatorCounted() - 1;

for(i=limit; i>=0; i--){

RSI= iRSI(NULL,60,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

MA1_Array = iMAOnArray(RSI,0,MA1_Period,0,MA1_Method,i);

MA2_Array = iMAOnArray(RSI,0,MA2_Period,0,MA2_Method,i);

}

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

MR_Ratio = MA1_Array / MA2_Array * 100;

}

double tmp1=MR_Ratio[0];

SetText("Label1",DoubleToStr(tmp1,1),Black,55,20);

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

//| Trying to set new buffers |

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

IndicatorBuffers(4);

SetIndexBuffer(0,_RSI);

SetIndexBuffer(1,_MA1_Array);

SetIndexBuffer(2,_MA2_Array);

SetIndexBuffer(3,_MR_Ratio);

for(i=limit; i>=0; i--){

_RSI= iRSI(NULL,240,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

_MA1_Array = iMAOnArray(_RSI,0,MA1_Period,0,MA1_Method,i);

_MA2_Array = iMAOnArray(_RSI,0,MA2_Period,0,MA2_Method,i);

}

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

_MR_Ratio = _MA1_Array / _MA2_Array * 100;

}

double tmp2=_MR_Ratio[0];

SetText("Label2",DoubleToStr(tmp2,1),Black,95,20);

//----

return(0);

}

void SetText(string ObjName,string ObjText,color clr,int xpos,int ypos){

ObjectCreate(ObjName,OBJ_LABEL,WindowFind(ShortName),0,0);

ObjectSetText(ObjName,ObjText,9,"Arial Bold",clr);

ObjectSet(ObjName,OBJPROP_CORNER,0);

ObjectSet(ObjName,OBJPROP_XDISTANCE,xpos);

ObjectSet(ObjName,OBJPROP_YDISTANCE,ypos);

}

 
SolomonZhang:
嗨,各位。

我是一个初学者。

Wolfe很友好地创建了一个代码模板,我对其进行了修改。它运行得非常好,而且做了我想做的事。

但是现在。

我正在考虑创建这个数字版本,类似于DIGISTOCH指标。

我想知道的是。

- 如何 "清除 "或 "刷新 "缓冲区?我似乎无法 "清除 "缓冲区的链接并创建新的缓冲区。

- 如何修改为不包括缓冲区?我想这可以节省一些内存吧?我试着删除SetIndexBuffer,但在MT4加载时,在专家终端窗口出现 "零除法 "错误。

- 下面的两个标签只显示一个值,H1值。它应该显示H1和H4的数字。所以它在这里不起作用。

- 我基本上想让它在一个屏幕上显示不同时间框架(从M1到MN1)的比率数字,就像DIGIStoch指标一样。

希望得到任何帮助。

请注意。

只需在每个循环的初始化之后为缓冲区定义一个空值。

关于零除法,只需在计算前创建一些 "如果 "条件。

 

多时间信号代码

嗨,程序员

我是一个学习如何编程的新手,已经创建了一个基本的EA,如果有人能在以下方面帮助我,我将非常感激。

我的想法是,基本上寻找较高的TF信号,并等待较低的TF回调,然后执行订单,如:。

如果4个HR产生了以下信号。

如果(MacdCurrentSignalCurrent)MacdPrevious<SignalPrevious)=LongSignalActivated

如何持有上述信号并等待1 HR(或任何其他时间框架)的回撤,如

if (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious) Order=SignalBuy

任何其他策略。

我已经在变量中为不同的时间框架定义了所有的指标......

如果有人愿意伸出援手,我可以发送EA......同时,如果任何有经验的程序员愿意与我的策略合作,我愿意给予补偿(不幸的是,我付不起太多钱)。

感谢任何帮助

莫-赛义德

电子邮件:moi.syed@gmail.com