以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 如何获取当前账户下的现有持仓 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=168316) |
-- 作者:chywu -- 发布时间:2019/2/20 12:38:10 -- 如何获取当前账户下的现有持仓 请教一下 5.0.2版中,使用PEL编写的交易策略 如何获取当前实际账户下的持仓品种和数量 返回函数是什么格式 可否查询某个品种是否已经有持仓,若有,它的持仓数量是多少 图表交易中能实现最好,如果不能,后台交易也行 谢谢 ![]() |
-- 作者:FireScript -- 发布时间:2019/2/20 13:12:04 -- 后台函数可以直接获取账号实际持仓。图表不行的。 请参考: TBUYHOLDINGEXTSELLHOLDINGEX |
-- 作者:chywu -- 发布时间:2019/2/21 8:18:30 -- 可否给个用法啊 函数帮助是这样写的 取指定帐户品种的买入持仓量(多头持仓), 用法:TBUYHOLDINGEX(AC,STOCK,N),AC为指定的帐户名,若为空表示取当前默认帐户 STOCK为指定的品种,若空表示当前品种。 N表示类型,0表示取当日可用买持(股票为可用持仓),1表示取全部可用买持(不包含未成交平多单),2表示取全部买持(包含未成交平多单),3表示取未成交单平多单. 该函数返回常数。 具体到某只股票,获取当前账户某只股票的全部持仓数量,是不是这样写: tBuyHoldingEX(\'\',\'000423\',2) 感谢!! |
-- 作者:FireScript -- 发布时间:2019/2/21 8:39:37 -- 是这样写的没错。 |
-- 作者:chywu -- 发布时间:2019/2/22 21:25:49 -- 再请教一下 我固定操作6个品种,对应6个公式 品种和公式一一对应 希望6个品种对应的持仓比例基本不变,满仓的话,总持仓不超过90%。 下单模块这样写,逐K线模式,用标准版作价格预警,没有显示预警信号,有什么问题吗? 如果用专业版作后台交易,能不能正确运行? //下单数量:每根K线查询一次实际持仓 Denominator := 19; Numerator := 4; IF tBuyHoldingEX(\'\',\'510500\',2) > 999 then Denominator := Denominator - 4; //500ETF IF tBuyHoldingEX(\'\',\'159901\',2) > 999 then Denominator := Denominator - 4; //深100ETF IF tBuyHoldingEX(\'\',\'159915\',2) > 999 then Denominator := Denominator - 4; //创业板 IF tBuyHoldingEX(\'\',\'150131\',2) > 999 then Denominator := Denominator - 3; //医药B IF tBuyHoldingEX(\'\',\'159902\',2) > 999 then Denominator := Denominator - 2; //中小板 IF tBuyHoldingEX(\'\',\'150019\',2) > 999 then Denominator := Denominator - 2; //银华锐进 Pecentage := 0.9 * Numerator / Denominator ; Fund := tCash * Pecentage; //下单:先卖后买 IF tHolding > 0 and TodayHolding = 0 then Begin
震卖:TSell(Shock_Sell,0,MKT);
趋卖:TSell(Trend_Sell,0,MKT);
止损:TSell(StopLoss_Sell,0,MKT); end IF tHolding = 0 then Begin
震买:TBuy(Shock_Buy,Fund/close,MKT);
趋买:TBuy(Trend_Buy,Fund/close,MKT); end |
-- 作者:FireScript -- 发布时间:2019/2/25 9:47:00 -- 你输出下你的开平仓条件看下。上面代码没看出来哪里有问题。你开平仓条件的定义不在上面代码里面. |
-- 作者:chywu -- 发布时间:2019/3/15 11:00:07 -- 登录了专业版,做后台程序化交易,是模拟账户 还是上面的代码,注释掉了当前代码所在的行 //IF tBuyHoldingEX(\'\',\'510500\',2) > 999 then Denominator := Denominator - 4; //500ETF IF tBuyHoldingEX(\'\',\'159901\',2) > 999 then Denominator := Denominator - 4; //深100ETF IF tBuyHoldingEX(\'\',\'159915\',2) > 999 then Denominator := Denominator - 4; //创业板 IF tBuyHoldingEX(\'\',\'150131\',2) > 999 then Denominator := Denominator - 3; //医药B IF tBuyHoldingEX(\'\',\'159902\',2) > 999 then Denominator := Denominator - 2; //中小板 IF tBuyHoldingEX(\'\',\'150019\',2) > 999 then Denominator := Denominator - 2; //银华锐进 这样买入条件可以运行,并且是准确的,但是debugfile出来的tholding和todayholding一直是0,所以按上面的逻辑,不会触发卖出条件 看成交回报是成交了的,持仓、log都是好的
|
-- 作者:FireScript -- 发布时间:2019/3/15 11:11:01 -- 这2个函数返回的是可用持仓,你要是股票的话。那得是老仓,否则返回就是0哦。 |
-- 作者:chywu -- 发布时间:2019/3/15 14:05:38 -- 股票的话,过了夜就应该是可用持仓了吧? 按照卖出的逻辑: 先检查总持仓数量不为0,再检查今日持仓为0,符合这两个条件就卖出,应该怎么写 图表交易这样写的,并且运行良好: IF Holding > 0 and dayHolding = 0 then Begin 震卖:Sell(Shock_Sell,0,MarketR); 趋卖:Sell(Trend_Sell,0,MarketR); 止损:Sell(StopLoss_Sell,0,MarketR); end 如果改成后台交易到底应该怎么写 多谢,我已经昏了
|
-- 作者:FireScript -- 发布时间:2019/3/15 14:22:56 -- IF TBUYHOLDINGEX(\'\',\'\',0)=TBUYHOLDINGEX(\'\',\'\',1) and TBUYHOLDINGEX(\'\',\'\',0)<>0 then Begin 震卖:tSell(Shock_Sell,0,MKT); 趋卖:tSell(Trend_Sell,0,MKT); 止损:tSell(StopLoss_Sell,0,MKT); end 可以这样。判断时候是这样判断的:当日可用=全部可用 且当日可用不等于0.
|