以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  案例中,空单始终监控开始后的最低价,如何处理  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=166241)

--  作者:wjxkjs
--  发布时间: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
--  发布时间: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
--  发布时间:2018/10/31 14:34:23
--  

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

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

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

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

--  作者:wjxkjs
--  发布时间:2018/10/31 14:35:22
--  
好像不对。第一个IF后,DD的值应该是1啊,第二个IF的条件不会触发
--  作者:FireScript
--  发布时间:2018/10/31 14:39:40
--  
 第一个IF之后 DD已经赋值成1了啊。EXTGBDATA(\'DD\' )>0  肯定满足的。

--  作者:wjxkjs
--  发布时间: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
--  发布时间:2018/10/31 15:18:31
--  
1、DD初始值为0, 当 TSELLHOLDINGEX( \'\',\'\' ,1)>0 AND EXTGBDATA(\'DD\' )=0 后,赋值为1了 ; 您的疑问是什么?
--  作者:wenarm
--  发布时间:2018/10/31 15:45:49
--  

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

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


--  作者:wjxkjs
--  发布时间: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
--  发布时间: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

 

这样就行了。