以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  后台利用holding虚拟持仓下单  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=151154)

--  作者:独钓_寒江雪
--  发布时间:2017/4/12 9:35:58
--  后台利用holding虚拟持仓下单

在图表改后台的情况下,可不可以用holding作为条件,来实现后台交易

 

BUY(开多条件,1,thisclose);//原来图表条件不变

sell(平多条件,0,thisclose);

tbuy(holding>0 AND THOLDING=0,1,MKT);//后台开多

TSELL(HOLDING=0 AND THOLDING>0,0,MKT);

 


--  作者:yukizzc
--  发布时间:2017/4/12 9:53:42
--  
可以,就是这么写的
--  作者:独钓_寒江雪
--  发布时间:2017/4/12 10:03:02
--  
这样做的话,开平仓执行效率是否比原来图表的高
--  作者:yukizzc
--  发布时间:2017/4/12 10:14:52
--  

不高,你这还是图表逐k的计算模式

如果效率就纯后台不要图表


--  作者:独钓_寒江雪
--  发布时间:2017/4/12 10:35:17
--  

实验观察了下 确实不高,似乎还不如图表的,除非对速度没有很高要求,又要用到后台的一些功能不得已而为之。

后台中,浮动盈利是实时的,怎样去获取持仓过程中的最大盈利或最大亏损,在图表中好实现,但后台中不知道如何实现。

    图表的实盘用户,已经运行了一段时间,由于要同时加载多个品种,图表用起来不方便,速度也跟不上,现在正在改成后台的,

刚接触后台不久,急用!

    能否帮忙写段后台代码:

1.最大盈利到maxv后,盈利回撤10%平仓。

 


--  作者:qq代人发帖
--  发布时间:2017/4/12 10:40:09
--  
参考系统自带的范例编写
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:wenarm
--  发布时间:2017/4/12 10:40:45
--  

你可以参考代码

//移动止损模块部分*******************************
//A有三种数值状态:1,0,最新价;
//当A=1时表示当前有持仓,A=0时表示移动止损执行完毕,A=最新价时用于比较价格是否回落

//将A赋值为1,表示当前有持仓
IF TBUYHOLDINGEX( \'\',\'\' ,0 )>0 AND EXTGBDATA(\'a\' )=0 THEN BEGIN
EXTGBDATASET( \'a\',1 );
END

//使A始终表示监控开始后的最高价
IF DYNAINFO(  7)>EXTGBDATA(\'a\' ) and EXTGBDATA(\'a\' )>0 THEN BEGIN
EXTGBDATASET( \'a\',DYNAINFO(  7));
END

//发现价格回落止损,并将A赋值为0表示移动止损动作完成
IF EXTGBDATA(\'a\' )-DYNAINFO(  7)>5*MINDIFF and EXTGBDATA(\'a\' )>0 THEN BEGIN
TSELL(1,1,MKT );
EXTGBDATASET( \'a\',0);
END


--  作者:独钓_寒江雪
--  发布时间:2017/4/12 11:22:19
--  

dynainfo(7)为动态函数,对于日内交易,且在后台不间断运行监控中,上述代码能实现移动止损;

请问:

  如果是隔夜系统,只要开盘过程中,开启后台不间断运行,是否同样可以实现移动止损


--  作者:qq代人发帖
--  发布时间:2017/4/12 11:27:41
--  

不分日内和隔夜一样用。

 


--  作者:独钓_寒江雪
--  发布时间:2017/4/12 12:18:04
--  

如果变量A,不用全局单值变量而是普通变量,整个代码修改如下,是否一样可以实现移动止损的功能?

 

IF TBUYHOLDINGEX( \'\',\'\' ,0 )>0 AND a=0 THEN  a:=1;

//使A始终表示监控开始后的最高价
IF DYNAINFO( 7)>a and a>0 THEN a:=DYNAINFO(  7);

//发现价格回落止损,并将A赋值为0表示移动止损动作完成
IF a-DYNAINFO(  7)>5*MINDIFF and a>0 THEN BEGIN
TSELL(1,1,MKT );
a:=0;
END