以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于止盈止损  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=30854)

--  作者:leonxu
--  发布时间:2012/11/23 12:24:15
--  关于止盈止损

我使用后台多策略,所以单独将止盈止损做了一个策略如下:

variable:maxprofit=0;

debugout(\'最新开仓价tenterprice=%2.f\',tenterprice);


//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;

if tholding2 > 0 and tenterbars > 0 then
begin
 win:=(c-tenterprice)/tenterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

if tholding2 < 0 and tenterbars > 0 then
begin
 win:=(tenterprice-c)/tenterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

//出现浮动亏损比如2%平仓
多止损:tSELL(win<=-1*止损,0);
空止损:tSELLshort(win<=-1*止损,0);
 
//出现最高盈利后,回落到盈利的40%平仓出场
多止赢:tSELL(maxprofit>止盈 and win2 >= 60 and openprofit>0,0);
空止赢:tSELLshort(maxprofit>止盈 and win2 >= 60 and openprofit>0,0);

 

其中止盈和止损两个参数放在参数表中,但实际运行时好象都完全不起作用,不知为何


--  作者:leonxu
--  发布时间:2012/11/23 12:46:35
--  

用debugout(\'最新开仓价tenterprice=%2.f\',tenterprice);检查

 

奇怪,运行完显示是负一,是手数?不是开仓价,是因为没有交易语句吗,但我想它做为了一个统一的总的止盈止损的策略,如何实现


--  作者:admin
--  发布时间:2012/11/23 13:03:49
--  
在关键的win赋值部分加入调试代码,比如DEBUGFILE函数,看看这些变量为什么没有被赋值
--  作者:leonxu
--  发布时间:2012/11/23 15:06:54
--  

问题是tenterprice=1或-1,长期如此


--  作者:admin
--  发布时间:2012/11/23 15:18:42
--  [原创]

用法:TENTERPRICE
该函数返回常数,并且只有在后台程式化交易运行中有效
该函数依赖TBUY等交易语句或者在交易监控中的手工干预的成交记录。
所属函数组:后台程式化交易(专业版)

 

看看你是不是因为是手工交易的原因而导致无法得到开仓价格而导致


--  作者:leonxu
--  发布时间:2012/11/23 15:37:38
--  
没有,我的交易策略是另外的一个,然后上面的程序单独形成一个策略以起止损止盈的作用
--  作者:leonxu
--  发布时间:2012/11/23 15:37:55
--  
即上面的程序就是程序的全部
--  作者:leonxu
--  发布时间:2012/11/23 15:39:53
--  
这个程序开始没有TBUY,但同时运行的另外几个策略负责tbuy 和 tbuyshort
--  作者:jinzhe
--  发布时间:2012/11/23 15:50:29
--  请求改动我的模型
公式没有下单语句?
--  作者:admin
--  发布时间:2012/11/23 16:01:13
--  
TENTERPRICE 只能读到自己策略里的开仓成本,无法读取到其他策略里的数据的