找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 23|回复: 0

【海龟资金管理】请教海龟资金管理系统代码

[复制链接]

4万

主题

54

回帖

4万

积分

管理员

积分
45954
发表于 2026-8-27 21:53:00 | 显示全部楼层 |阅读模式
自己通过教学编写的海龟资金管理,但是好像无法在EA当中准确获取应该建立的海**寸,希望可以得到前辈的指点。

以下部分为源码:

//---海龟资金管理
double turtle_Lots(string symbol,int turtle)
{
   double lots = 0;  // 初始仓位
   double total_money = accountInfo.Equity();   // 账户净值
   double turtle_Money = 0;  // 海龟投入的资金总额
   if(turtle_Money <= 0) return 0;

   int digits = (int)SymbolInfoInteger(symbol,SYMBOL_DIGITS); // 获取指定交易品种的点值
   double n = NormalizeDouble(MathAbs(ATR[1]),digits) / point; // 将ATR值转为整点值
   if(n < 0) return 0;

   //---获取点值
   double tickVal = SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE);
   if(tickVal <= 0) return 0;

   //---计算手数 = 海龟资金投入总额/ATR/点值
   lots = NormalizeDouble(turtle_Money/n/tickVal,digits);

    //---进行规范化处理
   double lotstep = SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);  // 获取交易执行的最小成交量???翻译感觉不是很准确
   lots = MathRound(lots/lotstep) * lotstep;

   // 判断是否超过持仓限制
   double minVolume = SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
   double maxVolume = SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);

   if(lots >= minVolume && lots <= maxVolume)
      return true;

   return lots;
}
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-10-9 15:31 , Processed in 0.103004 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表