欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 案例中,空单始终监控开始后的最低价,如何处理

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2860人关注过本帖树形打印复制链接

主题:案例中,空单始终监控开始后的最低价,如何处理

帅哥哟,离线,有人找我吗?
wjxkjs
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:1791 威望:0 精华:0 注册:2009/11/20 21:02:10
案例中,空单始终监控开始后的最低价,如何处理  发帖心情 Post By:2018/10/31 14:12:44 [只看该作者]


VARIABLE:DD=0;  VARIABLE:KK=0;

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

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

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/10/31 14:32:13 [只看该作者]


VARIABLE:DD=0;  VARIABLE:KK=0;

IF TSELLHOLDINGEX( '','' ,1)>0 AND EXTGBDATA('DD' )=0 THEN BEGIN
EXTGBDATASET( 'DD',1 );
END

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

//发现价格回落上涨,并将A赋值为0表示移动止损动作完成
IF DYNAINFO( 7)-EXTGBDATA('DD' )>5*MINDIFF and EXTGBDATA('DD' )>0 THEN BEGIN
TSELLshort(1t=-1  AND   空头持仓>0,1,MKT );
EXTGBDATASET( 'DD',0);
END
[此贴子已经被作者于2018/10/31 14:33:03编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2018/10/31 14:34:23 [只看该作者]

你说的的空单指的是没有持仓还空头持仓。

持仓为0的情况下,不会记录最高价的。它记录的原则是,持仓以后的最高价。

如果是空头的处理,你这段代码是多头的处理逻辑,吧空头的贴出看

[此贴子已经被作者于2018/10/31 14:35:34编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wjxkjs
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:1791 威望:0 精华:0 注册:2009/11/20 21:02:10
  发帖心情 Post By:2018/10/31 14:35:22 [只看该作者]

好像不对。第一个IF后,DD的值应该是1啊,第二个IF的条件不会触发

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/10/31 14:39:40 [只看该作者]

 第一个IF之后 DD已经赋值成1了啊。EXTGBDATA('DD' )>0  肯定满足的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
wjxkjs
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:1791 威望:0 精华:0 注册:2009/11/20 21:02:10
  发帖心情 Post By:2018/10/31 15:08:44 [只看该作者]

最新价,小于1不会出现啊TSELLHOLDINGEX( '','' ,1)>0 AND EXTGBDATA('DD' )=0 THEN BEGIN
EXTGBDATASET( 'DD',1 );
END

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

 回到顶部
帅哥哟,离线,有人找我吗?
banzhuan
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2018/10/31 15:18:31 [只看该作者]

1、DD初始值为0, 当 TSELLHOLDINGEX( '','' ,1)>0 AND EXTGBDATA('DD' )=0 后,赋值为1了 ; 您的疑问是什么?

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2018/10/31 15:45:49 [只看该作者]

看你代码中的注释,DD代码3中情况,其中两种是状态以及最高价,你可以先理解下代码的处理逻辑、dd在不同情况下,其作用不同。

//当A=1时表示当前有持仓,A=0时表示移动止损执行完毕



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wjxkjs
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:1791 威望:0 精华:0 注册:2009/11/20 21:02:10
  发帖心情 Post By:2018/10/31 23:12:25 [只看该作者]

TSELLHOLDINGEX( '','' ,1)>0 AND EXTGBDATA('DD' )=0 THEN BEGIN
EXTGBDATASET( 'DD',1 );
END

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



第一个if   DD肤质了1,怎么可能出现最新价小于1的情况????

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2018/11/1 8:27:00 [只看该作者]

VARIABLE:DD=0;  VARIABLE:KK=0;

IF TSELLHOLDINGEX( '','' ,1)>0 AND EXTGBDATA('DD' )=0 THEN BEGIN
EXTGBDATASET( 'DD',DYNAINFO(  7) );//或者你把这个值赋值为一个比较大的值,例如999999
END

 

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

 

//发现价格回落上涨,并将A赋值为0表示移动止损动作完成
IF DYNAINFO( 7)-EXTGBDATA('DD' )>5*MINDIFF and EXTGBDATA('DD' )>0 THEN BEGIN
TSELLshort(1t=-1  AND   空头持仓>0,1,MKT );
EXTGBDATASET( 'DD',0);
END

 

这样就行了。



编程无捷径,技巧靠积累。
 回到顶部