以文本方式查看主题

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

--  作者:kangzheisbad
--  发布时间:2014/4/10 10:51:33
--  关于移动止盈的问题
关于移动止盈:
 

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

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


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

如果策略为日内策略用在1分钟图上,开仓条件有A、B、C三个,平仓条件有回撤1%平仓、亏损1%平仓,以及条件D

其中每天先执行开仓条件A,任意平仓条件满足后平仓,然后不再执行A,满足B或C时开仓,平仓 条件与之前相同,14:55平掉所有头寸

请教如何编写


--  作者:jinzhe
--  发布时间:2014/4/10 11:02:47
--  

写个大体的框架,你把对应的条件给带进去

思路是用全局变量来记录开仓条件a和其他开仓条件的状态

 

variable:n=0;

variable:m=0;

if 开仓条件a and holding=0 then begin

   开仓语句;

   n:=1;

end

 

if n=1 and m=0 and 任意的平仓条件 then begin//如果平仓条件太多,那么这句平仓代码要多谢几遍,枚举出所有的平仓条件

   平仓语句........;

   m:=1;

end

 

if m=1 and 其他开仓条件 then begin//同样的,如果其他开仓条件太多不能在一个if里面写完,那么这样的语句多谢几遍,把开仓条件逐一枚举

    开仓语句......;

end

 

if time=closetime(0) then begin

   n:=0;

   m:=0;

end//重置全局变量为0

 

 


--  作者:kangzheisbad
--  发布时间:2014/4/10 11:08:42
--  
移动止盈的那段语句怎么加呢?
--  作者:jinzhe
--  发布时间:2014/4/10 11:20:35
--  
那不是一个意思?把全局变量判断加进平仓语句
--  作者:kangzheisbad
--  发布时间:2014/4/10 11:26:02
--  

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

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


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

你的意思是每个平仓的iF语句中都把上面这段嵌进去吗?


--  作者:jinzhe
--  发布时间:2014/4/10 11:29:32
--  
对,有几个写几个,这个是全局变量,每个平仓都要有对应的修改
--  作者:kangzheisbad
--  发布时间:2014/4/10 11:34:54
--  
执行过移动止盈后是否需要将 maxprofit、win,win2 这三个重置为零?
--  作者:jinzhe
--  发布时间:2014/4/10 13:15:29
--  

这个是原来代码有的你没有贴出来还是自己想加上去的?

如果是不是原有的就不要加,原来的代码意思已经满足了,不需要重置