请老师帮忙实现一思路 (文华财经wh9)

投资者咨询:请老师帮忙实现一思路 (文华财经wh9)
来源:文华财经  日期:2018-8-11 11:37
 老师好!
在TICK模型中:

1、做多时:当(1分钟的K>D)&&(5分钟的k>D),现价>=开仓价+10(10个最小的价格变化单位,下同),止盈。
2、做多时:当(1分钟的K<D)||(5分钟的k<D),现价>=开仓价+5,止盈。


3、做空时:当(1分钟的K<D)&&(5分钟的k<D),现价<=开仓价-10,止盈。
4、做空时:当(1分钟的K>D)||(5分钟的k>D),现价<=开仓价-5,止盈。

请老师帮助如何在TICK模型中实现?谢谢!
技术人员回复
日期:2018-8-11 17:10
 tick模型,不能跨周期引用k线周期的数据的

建议您调整下您的交易思路
投资者咨询:请老师帮忙实现一思路 (文华财经wh9)
来源:文华财经  日期:2018-8-11 11:37
 Setting
  SetBigVol:50; //定义大单为50
  SetTickData:1,10; //定义最近10笔TICK的数据区
Vars
  Numeric Win(4); //定义止盈参数
  Numeric Lost(4); //定义止损参数
  NumericSeries Sum_AskBigCount; //定义主动卖大单次数的和
  NumericSeries Sum_BidBigCount; //定义主动买大单次数的和
Begin
  Sum_AskBigCount = AskBigCount;  
  Sum_BidBigCount = BidBigCount; 

//--------------------------------定义开仓条件-----------------------------------------

  If(Sum_BidBigCount >= 4 && Rising(10) == 0) // 定义的数据区内的主动买大单次数>=4并且当前为下跌趋势,则进行多头建仓
  Buy;
  Else If(Sum_AskBigCount >= 4 && Rising(10) == 1) // 定义的数据区内的主动卖大单次数>=4并且当前为上升趋势,则进行空头建仓
  SellShort;

//--------------------------------定义平仓条件-----------------------------------------

  If(MarketPosition == 1) 
  {
If(New > BKPrice + Win * MinPrice) //多头止盈
Sell;
Else If(New < BKPrice - Lost * MinPrice) // 多头止损
Sell;
   }
  Else If(MarketPosition == -1) 
  {
If(New < BKPrice - Win * MinPrice) //空头止盈
BuyToCover;
Else If(New > SKPrice + Lost * MinPrice) // 空头止损
BuyToCover;
   }

End


老师好!

我在学习TICK的写法,上述的案例中有二个问题请教:

1、这个模型始终不会开仓,不知为啥?
2、SetBigVol:50; 按理这个大单的阈值定义在50的,但后面好像没有什么用?




投资者咨询:请老师帮忙实现一思路 (文华财经wh9)
来源:文华财经  日期:2018-8-11 11:37
 我把开仓的条件稍作修改以后,可以开仓了

 If(Sum_BidBigCount >= 4&&BidBigCount>AskBigCount);// Rising(10) == 1) // 定义的数据区内的主动买大单次数>=4并且当前为下跌趋势,则进行多头建仓
  Buy;
  If(Sum_AskBigCount >= 4&&BidBigCount<AskBigCount);// Rising(10) == 0) // 定义的数据区内的主动卖大单次数>=4并且当前为上升趋势,则进行空头建仓
  SellShort;


但这个大单的阈值定义语句不起作用了: SetBigVol:50;//000000;   
 50后面随便加0都没有什么作用,甚至//SetBigVol:50;  这样去掉了,也对后面没有什么影响的;  请问这是为啥呢?  如何正确地使用这个语句?  
投资者咨询:请老师帮忙实现一思路 (文华财经wh9)
来源:文华财经  日期:2018-8-11 11:37
 另外,请教二个问题:
1、现在试编了一下TICK模型,如果设定滑点为0时,就是盈利的,如果滑点设为1,就是亏损的,请问一下在软件中如何处理滑点问题?请老师给一些建议好吗?谢谢!
2、在TICK模型中,如果发出了开平仓指令,但没有成交或者只有一部分成交(包括开仓和平仓),我想等待它10个线或者5秒钟;如果交易成功了,然后按程序再执行下一个指令;如果5秒钟后,还没有成交,那么取消上一次(开或平)的指令;然后,后续执行下一步的指令。请问这个思路如何实现?就以3楼的案例,请老师帮助写一个例子。谢谢!
技术人员回复
日期:2018-8-12 12:09
 问题较为复杂 ,相关老师周一工作时间给您回复
投资者咨询:请老师帮忙实现一思路 (文华财经wh9)
来源:文华财经  日期:2018-8-11 11:37
 好的。等待中

另,还产生了二个问题:

为了防止盘中的剧烈波动;不参与操作。

1、如果开盘价高于上一个的收盘价的0.5%(或低于上一个收盘价的0.5%),即大幅高开或低开,暂停操作2分钟,这样的思路如何实现?
2、同理,如果遇到涨停板或者跌停板,隔天开盘休息5分钟后再操作,即使是盘中打开了板也是一样休息5分钟后再操作;这样的思路如何实现?(涨、跌停板幅度暂时按+-5%设计好了)

这两个,请老师也以上面3楼的TICK为例,帮助写个例子,谢谢!
技术人员回复
日期:2018-8-12 20:12
 
技术人员回复
日期:2018-8-13 10:11
1、Rising函数,需要有五档行情授权才能取到有效值,否则返回空值。

模拟没有五档授权,所以加入该语句开仓条件都不满足

2、SetBigVol为定义大单的标准

如AskBigCount,取得主动卖大单次数的和,那么在使用该函数前,必须使用SetBigVol函数定义大单阈值,即确定多少为大单,否则该函数返回0。

3、滑点,建议回测中考虑进去,因为实盘的每笔交易都是有滑点的

具体设置为多少需要根据经验来填写,因为不同合约,活跃程度成交量都不同,对应滑点也不同的

您可以手动下单的方式来确定下交易合约滑点的大小,之后在应用到程序化中

技术人员回复
日期:2018-8-14 10:33
后续编写,需要专业的编写同事给您编写,目前需求较多,编写需要排队

预警3-4周左右的时间,请您耐心等待下,编写完成我们会跟帖给您回复的



编写需求:

1、在TICK模型中,如果发出了开平仓指令,但没有成交或者只有一部分成交(包括开仓和平仓),我想等待它10个线或者5秒钟;如果交易成功了,然后按程序再执行下一个指令;如果5秒钟后,还没有成交,那么取消上一次(开或平)的指令;然后,后续执行下一步的指令。

2、如果开盘价高于上一个的收盘价的0.5%(或低于上一个收盘价的0.5%),即大幅高开或低开,暂停操作2分钟,这样的思路如何实现?

3、同理,如果遇到涨停板或者跌停板,隔天开盘休息5分钟后再操作,即使是盘中打开了板也是一样休息5分钟后再操作;这样的思路如何实现?(涨、跌停板幅度暂时按+-5%设计好了)