以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 请教头寸管理的编程 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=72201) |
-- 作者:咏成鑫 -- 发布时间:2014/11/20 14:19:40 -- 请教头寸管理的编程 请教头寸管理的编程。图标程序化操作股指连续;头寸管理计划:1、在满足开仓条件时、账户可用余额15万可以操作1手,30万可以操作2手,以此类推;2、上一次平仓盈利时,本次开仓按照第一条设定的金额对应开仓手数,比上一次开仓数增加一手,最高可以达到满仓(即类似于反等价鞅策略);相反,上一次平仓亏损时,则本次开仓手数比上一次减少一手,最低保持一手的基本开仓量。以上如何编程,谢谢指教。 |
-- 作者:FexTel -- 发布时间:2014/11/20 14:43:16 -- 1,图表程序化建议用户不要去与真实账户做交互,这样会导致历史信号的偏差 2,另外您初始资金15w,怎么去实现加减仓的操作?先把逻辑理清楚,谢谢 |
-- 作者:咏成鑫 -- 发布时间:2014/11/20 15:04:09 -- 老师: 我在编程中遇到了这个问题。现在源代码的开仓手数规定为:手数=“SS”,SS(1,1,100,1);我希望以后在程序化交易中能实现仓位的自动管理,也即在根据我在上面描述的两条规则进行加减仓。现在每手股指开仓保证金是9万,我投入100万,以每15万的资金开一手,100万最多开6手。请您指教,谢谢。
|
-- 作者:咏成鑫 -- 发布时间:2014/11/20 15:18:01 -- 老师:您刚才讲到的“图表程序化建议用户不要去与真实账户做交互,这样会导致历史信号的偏差”,这是什么意思?我们自编程序,实现自动交易,这个程序里当然的也就包括了对仓位的设定,图标上也就忠实的反映我们设计的情形,图标程序化自动交易也就是在图标上出现了信号后自动下单,是这样吗? |
-- 作者:FexTel -- 发布时间:2014/11/20 15:40:19 -- 1,是的,先出信号,然后真实账户跟着走。新用户要了解下图表的虚拟理论,在编程初级教程里是有的
|
-- 作者:yukizzc -- 发布时间:2014/11/20 15:50:53 -- kd:=开多条件; pd:=平多条件; variable:n=1; if kd then buy(holding=0,n,market); if pd then sell(1,holding,market); if NUMPROFIT(1)>0 and n<6 then n:=n+1; if NUMPROFIT(1)<0 and n>0 then n:=n-1; |
-- 作者:咏成鑫 -- 发布时间:2014/11/20 19:20:52 -- 老师:辛苦了,谢谢。 1、在上面的编程里,似乎还是缺少了“资金余额每达到15万才可以开一手”的表达,您看呢?我现在是100万投入,假设我的系统是一个稳定的正预期系统,将来资金会逐步增加,我计划始终按照“每增加15万、且满足开仓条件”则以这个仓位管理完成交易。 2、此外,我是做双向交易,不仅只有开多和平多。 3、还有,我的系统就是按照金字塔编程模板开发的,关于“手数”的设定就是模板里的“手数=SS”,我现在简单的设定SS为1;这里是请您帮助按照我加仓的想法编写\'手数\'的源代码。所以,请您明确告诉我,上述公式如何成为“手数”代入我的“交易条件”和“交易系统”。 谢谢了。
|
-- 作者:咏成鑫 -- 发布时间:2014/11/20 20:25:34 -- 进一步解释我刚才的意思,举例说明:我的源代码中部分如下: 手数:=SS; variable:SS=1; if NUMPROFIT(1)>0 and SS<6 then SS:=SS+1; if NUMPROFIT(1)<0 and SS>0 then SS:=SS-1; //交易系统: 开多:buy(开多条件 and holding=0, 手数,limitr,多头开仓价); 平多:sell((多盈条件 OR 多损条件) and holding>0,手数,limitr,C); 开空:buyshort(开空条件 and holding=0,手数,limitr,空头开仓价); 平空:sellshort((空损条件 OR 空盈条件) and holding<0, 手数,limitr,C); 我直接将公式代入我的源代码,应用于图时系统提示“编译错误,变量名SS重复”。
|
-- 作者:咏成鑫 -- 发布时间:2014/11/20 20:48:26 -- 我这样写好像是可以代进去了: variable:手数=1; if NUMPROFIT(1)>0 and 手数<6 then 手数:=手数+1; if NUMPROFIT(1)<0 and 手数>0 then 手数:=手数-1; 每15万开仓一手,在交易费用里修改设置保证金比例就可以了。 您看,是这样吗?
|
-- 作者:咏成鑫 -- 发布时间:2014/11/20 21:03:48 -- 老师好!经过测试发现,好像还有一个问题:因为写的是 if NUMPROFIT(1)>0 and 手数<6 then 手数:=手数+1,则当资金不足以再增加一手时,则图表上不出现交易信号、也就是没有实现交易; 所以,还是要清楚的表达,当资金满足增加时,手数=手数+1;当资金不能满足再增加一手时,以上次开仓手数开仓。请老师帮助,谢谢!
|