以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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;当资金不能满足再增加一手时,以上次开仓手数开仓。请老师帮助,谢谢!