问题是如何将指标代码添加到EA中?
你可以,但有一定的限制,但使用iCustom要容易得多。
但如果你真的想。 将一个指标代码转移到专家顾问代码中。指标结构 - MQL4文章
对于随机的,不需要iCustom
参数。
样本。 if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0) return(0)。 |
如何在EA中添加RVI指标?
也使用与添加随机指标的方式相同的代码?
iCustom() 或 iRVI()
如何在EA中添加RVI指标?
也使用与添加随机指标的方式相同的代码?
这是我今天早上做的代码。
谁能帮我解决这个问题?
//+------------------------------------------------------------------+
int init()
{
//----指标缓冲区 的映射
SetIndexBuffer(0,Buffer);
SetIndexBuffer(1,SignalBuffer);
//---- 指标线
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
//---- 绘图设置
SetIndexDrawBegin(0,RVIPeriod+3);
SetIndexDrawBegin(1,RVIPeriod+7);
//---- 数据窗口和指标子窗口标签的名称
IndicatorShortName("RVI("+RVIPeriod+")")。
SetIndexLabel(0, "RVI")。
SetIndexLabel(1, "RVIS")。
//---- 初始化完成
返回(0)。
}
{
double bid =MarketInfo(Symbol(),MODE_BID); // 请求获得Bid的值
double ask =MarketInfo(Symbol(),MODE_ASK); // 请求获得Ask值。
double point =MarketInfo(Symbol(),MODE_POINT);//请求获得Point值。
return; // 退出start()
如果(AccountFreeMargin()<100)
Print("我们没有钱。Free Margin = ", AccountFreeMargin())。
return(0);
}
int start()
{
{
int i,j,nLimit,nCountedBars;
双重dValueUp,dValueDown,dNum,dDeNum。
//----
if(Bars<=RVIPeriod+8) return(0);
//----
nCountedBars=IndicatorCounted()。
//----,检查可能的错误
if(nCountedBars<0) return(-1);
//----,最后一个计数的柱子将被重新计数。
nLimit=Bars-RVIPeriod-4;
如果(nCountedBars>RVIPeriod+4)
nLimit=Bars-nCountedBars。
//---- 在第1个缓冲区中计算的RVI
for(i=0; i<=nLimit; i++)
{
dNum=0.0。
dDeNum=0.0。
for(j=i; j<i+RVIPeriod; j++)
{
dValueUp=((Close[j]-Open[j])+2*(Close[j+1]-Open[j+1])+2*(Close[j+2]-Open[j+2])+(Close[j+3]-Open[j+3]))/6;
dValueDown=((High[j]-Low[j])+2*(High[j+1]-Low[j+1])+2*(High[j+2]-Low[j+2])+(High[j+3]-Low[j+3]))/6;
dNum+=dValueUp。
dDeNum+=dValueDown。
}
如果(dDeNum!=0.0)
Buffer[i]=dNum/dDeNum。
否则
Buffer[i]=dNum。
}
//---- 信号线在第2个缓冲器中计数
nLimit=Bars-RVIPeriod-7。
如果(nCountedBars>RVIPeriod+8)
nLimit=Bars-nCountedBars+1。
for(i=0; i<=nLimit; i++)
SignalBuffer[i]=(Buffer[i]+2*Buffer[i+1]+2*Buffer[i+2]+Buffer[i+3])/6;
//----
返回(0)。
}
{
OrderSend(Symbol,LotSize,Ask,StopLoss,TakeProfit,0,0)。
如果(Close<i)
OpenBuy()。
return(0);
OrderSend(Symbol,LotSize,Bid,StopLoss,TakeProfit,0,0)。
如果(Close>i)
OpenSell()。
return(0);
}
double GetSizeLot() { return(LotSize); }
double GetTakeProfitBuy() { return(Ask+TakeProfit*Point); }
double GetTakeProfitSell() { return(Bid-TakeProfit*Point); }
double GetStopLossBuy() { return(Bid-StopLoss*Point); }
double GetStopLossSell() { return(Ask+StopLoss*Point); }
string GetCommentForOrder() { return(); }
return(0); }
在发帖之前,请阅读其他一些主题......然后你会看到许多像这样的请求。
请使用这个来发布代码 ..这使它更容易阅读。
这是我今天早上做的代码。
有谁能帮助我解决这个问题?
正如我上面提到的,我希望用随机编码 制作EA。
问题是如何在EA中添加指标代码?