自动计算批量大小的功能? - 页 6

 
1005phillip:

我很高兴! 谢谢你让我知道它在为你工作,我很感谢你的反馈。 我不确定早期的代码出了什么问题。 很可能是某个错误,我在两次修订之间不知不觉地纠正了它。

我可能在一两周内会有一个更新的版本,它将有一些回退功能,用于在MT4上对交叉货币对进行回测。 现在,如果你试图在使用我的手数代码时对交叉货币对进行回测,你的回测将被炸毁,因为回测器无法访问必要的计数器和基础货币对的市场价格。(这不是实时或正向测试的问题,纯粹是MT4回测器的限制)。

等我过了那座桥,我再把代码贴出来,也许你或其他人会觉得有帮助。

祝您周末愉快。
- 菲尔

你好,1005phillip。

我一直在阅读这个主题。 我对测试/使用你的代码感兴趣,如果它仍然可用的话。

最新的文件是在第一页,还是你私下提供的?


请说。

spgandau

 

......人群中大声地囤积着。(大笑串) "菲利普,菲利普,菲利普!"(大笑串结束)

我只想说一句大大的感谢,菲利普(,菲利普,菲利普!)。

不能说这段代码对我有用,我在 测时得到了和前面的人一样的 "识别SymbolType()时发生错误,计算的SymbolType()=6 "的错误。我想我将不得不进行转发测试。

我已经给圣诞老人写了一封大信,作为2013年的圣诞礼物。

"亲爱的圣诞老人!

今年我已经洗了4次耳朵后面。所以,由于我一直是非常好的孩子,我希望我有一个像菲利普一样的大脑,这个星球上最慷慨的mql4编码者。求你了,亲爱的圣诞老人,把他的mql4编码能力也包括进去吧!

谢谢你,菲利普,对不起,圣诞老人。"

最好的问候。

玩得开心。


西蒙

 
1005phillip:

很高兴听到这个消息,Shawn!

我一直在修改代码,如果你想要一个最新的版本(你手上的版本没有错误),我很乐意分享它。

这些变化主要是围绕着使包含文件更容易与你现有的EA整合和使用。 既然你已经设法让另一个实现了,那么现在对你来说可能没有任何区别。

好日子

我需要帮助编码一个EA,或者至少得到这个特定指标的MQ。

附加的文件:
 
saintrose:

好日子

我需要帮助编写一个EA,或者至少得到这个特定指标的MQ。

问问你的邻居或者到这里来。 为懒得学习的人提供MT4和MT5编码帮助
 
Shawn:

大家好,我又回来跟你们唠叨了:-)谁有一个方便的小MQL4功能,可以根据我的可用资产的多少%的风险,以及我想要的止损大小(点),自动计算手数大小(任何符号)?


谢谢。

肖恩

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

市场信息分析|//|市场信息分析

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

bool GetMarketInfo()

{

minSLTPdstnc = MarketInfo(Symbol(), MODE_STOPLEVEL)。

如果(Risk_Percentage>100 || Risk_Percentage<0 ) Risk_Percentage=10。

Margin_Required=MarketInfo(Symbol(), MODE_MARGINREQUIRED)。

lotmin=MarketInfo(Symbol(), MODE_MINLOT);

lotmax=MarketInfo(Symbol(), MODE_MAXLOT)。

Lot_Step=MarketInfo(Symbol(), MODE_LOTSTEP)。

Lot_Size=MarketInfo(Symbol(), MODE_LOTSIZE)。

Tick_Value=MarketInfo(Symbol(), MODE_TICKVALUE)。

Spread=MarketInfo(Symbol(), MODE_SPREAD)。

return(true);

}


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

//| 测量订单手数|

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

double CheckLots (int risk_percent,double sl_size, double Static_Lot) {

if (risk_percent<=0) return (Static_Lot);

double lots=0;

lots=NormalizeDouble( (AccountBalance()*Risk_Percentage/100)/ (Tick_Value*sl_size), 2 )。

如果(lot*Margin_Required>AccountFreeMargin()) {

error("没有足够的资金采取" + DoubleToStr(lot,2) +" lots.")。

lots=AccountFreeMargin()/Margin_Required;

}

lots=MathFloor(lot/Lot_Step + 0.5)* Lot_Step;

如果 ( lots < lotmin ) lots=lotmin;

如果 ( lots > lotmax ) lots=lotmax;

如果 ( lots > MaxLot ) lots = MaxLot;

返回(lot)。

}

 

关于交易、自动交易系统和测试交易策略的论坛

论坛的一般规则和最佳做法。

当你发布代码时,请使用SRC按钮!


你好。

编辑 您的帖子,当您发布代码时,请使用CODE按钮

编辑器中的代码按钮

谢谢你。

 
William Roeder:

你好,可以根据最后一次损失的资金来计算手数,以弥补滑点或缺口价格造成的未计算的损失。