编码帮助 - 页 422

 
Mastercash:
我把使用资金管理设置为false....,但关于Lots参数,它不是关于Lots,而是关于未结订单的数量。我不希望EA在给定时间内开出超过5个订单......,这就是为什么我在输入参数中把NumberofTrades参数设置为5,但它仍然敢于我,并采取超过5个订单,从而威胁到我的资金管理!

掌握现金

这是一个测试的结果。

正如你所看到的,它从未在同一时间为同一符号和同一魔法号码开出超过5个订单。

附加的文件:
5_test.gif  87 kb
 

好的,我明白了......我只是不希望它为不同的符号接受超过5个订单....,例如,假设在过去20分钟内有来自10个符号的交易信号....,EA应该只接受前5个交易信号,然后当这5个订单中的任何一个关闭时,他可以再接受一个,确保当前运行的订单在各种符号中不超过5个。但它一直在超过5个,不管.....,有时它从同一个符号接受5个相同订单,这也是错误的。

mladen:
兑现大师(Mastercash

这是我测试的结果。

正如你所看到的,它从未在同一时间为同一符号和同一魔法号码开出超过5个订单。
 
Mastercash:
好的,我明白了......我只是不希望它在不同的符号上接受超过5个订单....,例如,假设在过去20分钟内有来自10个符号的交易信号....,EA应该只接受前5个交易信号,然后当这5个订单中的任何一个关闭时,他可以再接受一个,确保当前在不同符号上运行的订单不超过5个。但它一直在超过5个,不管.....,有时它从同一个符号接受5个相同订单,这也是错的。

如果你想让它在所有符号上最多有5个订单,请到第144行(if( OrderSymbol() != Symbol() ) 继续; )并删除它。并保持所有符号上的所有实例的神奇数字相同(所以它可以计算所有符号上只有该EA开出的订单)。

 

嗨,Mladen

我有一个很好的指标,当设置在一个较高的TF时,它不能刷新。

你可以在图表上看到,当我不进行编辑时,它仍然停留。你能帮助解决这个问题吗?

我添加了指标和一个屏幕截图

附加的文件:
 
wolfsch:
嗨,Mladen

我有一个很好的指数,当设置在一个较高的TF时,它没有被刷新。

正如你在图表上看到的,当我不编辑时,它仍然停留在那里。你能帮助解决这个问题吗?

我添加了该指标和一张截图

wolfsch

只有在视觉回测时才会出现这种情况(这是metatrader至少7-8个月没有纠正的错误,是metatrader的错误,不是指标的错误),在视觉回测 时,所有多时间框架指标都会出现这种情况。

在正常使用情况下,它可以正常工作(为了以防万一,现在就进行了测试,所有的工作都是在常规图表上应该进行的)。

 

谢谢你,我将努力解决这个问题,我会给你回复的......。

mladen:
如果你想让它在所有符号上最多有5个订单,请到第144行(if( OrderSymbol() != Symbol() ) 继续; )并删除它。并保持所有符号上的所有实例的神奇数字相同(所以它可以计算所有符号上只有该EA所开的订单)。
 
mladen:
TFI

缓冲区3是正确的(即 "趋势 "缓冲区,其值为1表示向上倾斜,-1表示向下倾斜)。你使用的是移位1和移位2,因此它测试的是第一个闭合的柱子。

购买部分的代码是正确的。

你漏掉了

if(trendc!=trendp)

从出售的部分蚂蚁,可能导致你的问题

你好,Mladen。

非常感谢您的帮助。我根据您的建议修改了代码

你的建议,它的交易很顺利,点数计算也很正常。

但现在它不再开空头交易了(也可能是一种策略;-))。

它只是在关闭多头头寸。

能否请您再给我一次建议?

extern double maxshorttrades = 2;

extern double maxlongtrades = 2;

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

//| BUY |

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

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_BUY && OP_BUY<maxlongtrades) break; // Check Traded Positions.

{

if(trendc!=trendp)

{

if(trendc==1 && (CCIFilter<80)) // code for buy

OpenBuy();

return(0);

}

openedOrders++;

}

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

//| SELL |

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

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_SELL && OP_SELL<maxshorttrades) break; // Check Traded Positions.

{

if(trendc!=trendp)

{

if(trendc==-1 && (CCIFilter>80)) // code for sell

OpenSell();

return(0);

}

openedOrders++;

}

}

详情请见所附截图。

谢谢您的帮助。

谨此致意。

TFI

附加的文件:
backtest.jpg  163 kb
 
tfi_markets:
你好,Mladen。

非常感谢您的帮助。我根据您的建议修改了代码

你的建议,它的交易很顺利,点数计算也很正常。

但现在它不再开空头交易了(也可能是一种策略;-))。

它只是在关闭多头头寸。

能否请您再给我一次建议?

extern double maxshorttrades = 2;

extern double maxlongtrades = 2;

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

//| BUY |

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

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_BUY && OP_BUY<maxlongtrades) break; // Check Traded Positions.

{

if(trendc!=trendp)

{

if(trendc==1 && (CCIFilter<80)) // code for buy

OpenBuy();

return(0);

}

openedOrders++;

}

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

//| SELL |

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

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_SELL && OP_SELL<maxshorttrades) break; // Check Traded Positions.

{

if(trendc!=trendp)

{

if(trendc==-1 && (CCIFilter>80)) // code for sell

OpenSell();

return(0);

}

openedOrders++;

}

}

详情请见所附截图。

谢谢您的帮助。

谨此致意。

TFI

TFI

试试这样的方法:

extern double maxshorttrades = 2;

extern double maxlongtrades = 2;

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

//

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

int clongs = 0;

int cshorts = 0;

for (i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check Long Traded Positions.

if(OrderType()==OP_SELL) cshorts++; // Check Short Traded Positions.

}

if(trendc!=trendp)

{

if(clongs < maxlongtrades && trendc== 1 && (CCIFilter<80)) OpenBuy();

if(cshorts 80)) OpenSell();

// Check the CCI condition

// it is not symetrical to buy condition

}

 

mladen,

我已经做了144号的修改,我已经统一了神奇的数字,"MagicNumber "跨符号....It现在一次最多进行5次交易,但它现在在同一时间对同一符号重复交易,例如,如果收到欧元兑美元的卖出交易信号,它将把欧元兑美元的卖出订单 放置5次。请看图片,它是这样下的实盘。

Mastercash:
谢谢你,我将努力解决这个问题,并给你回复......。
附加的文件:
apcorrimage.png  39 kb
 
Mastercash:
mladen,我已经做了144号的修改,我已经统一了神奇的数字,"MagicNumber",跨符号的实例....It,现在一次最多进行5次交易,但它现在在同一时间对同一符号重复交易,例如,如果收到欧元兑美元的卖出交易信号,它将把欧元兑美元的卖出订单放置5次。请看它所下的实时订单图片。

这并不取决于该代码部分

你必须在代码的其余部分添加一个检查,不要在同一个酒吧和同一个符号上开单。