如何编码? - 页 64

 

非常感谢您的回答。不是参数的问题,循环中的计算是正确的。我认为问题出在函数 循环外对iMAonArray的第二次调用。

问候

 

将MaxBarsToCount(历史)添加到限制中的最佳方法

当我们限制MaxBarsToCount(History)时,有时需要添加修正等。

最好的(最安全的、最简单的、通用的)方法是否存在?

----------------------

就像在这里,我们有轻型的Fisher 4 stoch smothing。

----------

int start()

{

int counted_bars=IndicatorCounted()。

//----,检查 可能的错误

if(counted_bars<0) return(-1);

int limit=Bars-counted_bars。

如果(limit>maxbars)limit=maxbars。

如果(limit>Bars-lenth-1)limit=Bars-lenth-1。

//----

for (int shift = limit; shift>=0;shift--)

{

AuxBuffer[shift]=(iStochastic(NULL,0,lenth,2,1,MODE_SMA,0,MODE_MAIN,shift)/100-0.5)

+0.5*AuxBuffer[shift+1];

FishBuffer[shift]= 0.25* MathLog((1+AuxBuffer[shift])/(1-AuxBuffer[shift]))+

0.5*FishBuffer[shift+1];

SignalBuffer[shift]=FishBuffer[shift+1]。

}

//----

return(0);

}

------------------------

对于fisher limit f-la:

int limit;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--。

limit=Bars-counted_bars。

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

{

....

对于Stoch。

int start()

{

int i,k;

int counted_bars=IndicatorCounted()。

双倍价格。

//----

if(Bars<=draw_begin2) return(0);

//---- 初始零点

如果(counted_bars<1)

{

for(i=1;i<=draw_begin1;i++) MainBuffer=0;

for(i=1;i<=draw_begin2;i++) SignalBuffer=0;

}

//---- 最小计数

i=Bars-KPeriod。

if(counted_bars>KPeriod) i=Bars-counted_bars-1;

while(i>=0)

{

double min=1000000;

k=i+KPeriod-1;

while(k>=i)

{

price=Low[k];

如果(min>price)min=price。

k--;

}

LowesBuffer=min;

i--;

}

....

p.s. 在所附的指标中,基于干净的Fisher变换和Stoch;MaxBars需要调直一点...(当MaxBars出来时--没有问题)

附加的文件:
 

你好。

非常感谢你们所有人。它现在工作得很好,每个柱子只开一个订单。像这样的EA的好处是,我们可以使用"仅开价"选项进行回溯测试,这比 "每格 "选项要快。

 
Michel:
嗨,煎蛋,你知道BT在查看历史记录方面有问题吗:它查看的是真实的历史记录,而不是BT的记录。几个月前我向Metaquote询问过这个问题,但他们没有任何答复....。也许现在它被修复了...

米歇尔,谢谢你的提醒。哇,我不知道 - 我认为这是一个巨大的错误!!。

为了检查 这一点(使用MT 208),我使用OrdersHistoryTotal()信息来决定一个martingaler的交易方向,并在另一个版本上使用 "常规手段"--两者的权益曲线 "应该 "是相同的。这是我发现的.........

我也刚刚用最新的Metatrader进行了检查,这个错误仍然存在 - 难以置信.....。

 

需要MQL代码

你好。

我需要一些代码,我可以把它整合到EA中。

1) 我需要给我的EA设置一个限制,它不应该在下午2:00到5:00之间开仓。请给我这个简单的代码,并告诉我可以把它放在EA的什么地方。

2) 我不想在EA中设置SL开仓,因为经纪人会猎取SL。因此,我需要在EA中设置一个检查,即 "如果开仓的总利润为+20点,则关闭头寸"。

我将非常感谢那些总是支持别人的支持者们!我将在此感谢他们。

最好的问候。

Kashif.

 
oilfxpro:
..... EA能否查看掉期的当前利率和掉期的历史利率? OILFXPRO

恐怕不行。

PS - 我的回答看起来有误导性。 我的意思是你不能检索历史掉期利率--获取当前利率是没有问题的...

 

同一时间内的几个订单

你好。

我想在一个专家顾问中进行以下编程。

我想同时开几个订单(3-6个订单)

1.订单。成交量;T/P;S/L;T/S

.

.

.

5.订购 :数量;T/P;S/L;T/S

可以帮助我吗?

谢谢

德鲁姆罗

 

我需要学习一些东西。

大家好

我需要一个简单代码的编程帮助,即。

如果市场价格>MA值的delta点数,打开买入。

如果市场价格<MA值的delta点数,则卖出。

有TP SL和TS。有哪位程序员专家能教我如何写这段代码?

谢谢你

 

我需要做什么来改变这段代码,使订单只在三个指标都同步的情况下打开,要么是上升趋势(蓝色),要么是下降趋势(红色),手动这样做效果很好,对我来说也很简单,可以跟随LOL。

我使用了一个旧的EA作为模板,并试图添加指标以创建正确的信号。目前,订单是通过TM或HAS打开的。

我附上了EA和过去几天的表现,我知道这并不意味着什么,但它有潜力。 IMO

谁能给我指出正确的方向。

谢谢

贝诺

附加的文件:
 

有什么方法可以使这个包含函数 的代码不至于 "卡 "在它的循环中吗?

int CBM(int intMagic)//CloseByMagic

{

int intOffset=0;

while(OTBM(intMagic)>0)

{

OrderSelect(intOffset,SELECT_BY_POS);

if(OrderMagicNumber()==intMagic)

{

if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),999,Red);

if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),999,Orange);

}

else {

intOffset++;

}

}

return(0);

}

谢谢任何能提供帮助的人。