以文本方式查看主题

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

--  作者:punkcat401
--  发布时间:2013/11/14 10:24:09
--  请教关于代码改写

下面是“多头开仓均价盈利大于100点时,以盈利100点的位置为低点,100+N点为高点,这段距离回落一半止盈
”的代码。

如果改成“由开盘价上行大于100点时,以上行100点的位置为低点,100+N点为高点,这段距离回落一半止盈
”,应该怎么写呢,改了几次好像都有问题

 

variable:maxprofit=0;//有仓位时最大获利

 

if 条件 and holding=0  then
 begin
 buy();
 maxprofit:=0;
 end

 

win:=0;
win2:=0;

 

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

 

//多头止盈

if maxprofit>=100 and holding>0 then
SELL(win2<100+0.5*(maxprofit-100),1,market);


--  作者:jinzhe
--  发布时间:2013/11/14 10:38:18
--  

这个不是一个概念?

 把H-enterprice改成open


--  作者:punkcat401
--  发布时间:2013/11/14 10:49:04
--  
以下是引用jinzhe在2013/11/14 10:38:18的发言:

这个不是一个概念?

 把H-enterprice改成open

我没说清楚,是当天日线的开盘价 callstock(stklabel,VTopen,6)

[此贴子已经被作者于2013/11/14 10:49:59编辑过]

--  作者:jinzhe
--  发布时间:2013/11/14 10:52:23
--  

还是一样啊,把这个open替换成日线开盘价


--  作者:punkcat401
--  发布时间:2013/11/14 11:00:15
--  
以下是引用jinzhe在2013/11/14 10:52:23的发言:

还是一样啊,把这个open替换成日线开盘价

原来是这样啊。。。。我想多了

if 条件 and holding=0 then
begin
buy();
maxprofit:=0;
end

那这一段中的赋值可以删掉了是吗


--  作者:jinzhe
--  发布时间:2013/11/14 11:02:33
--  
看我第一段回复,只要改那个地方就行,思路是一样的,改动对应的变量
--  作者:punkcat401
--  发布时间:2013/11/14 11:07:04
--  
以下是引用jinzhe在2013/11/14 11:02:33的发言:
看我第一段回复,只要改那个地方就行,思路是一样的,改动对应的变量

5分钟周期下,以价格距离当日的开盘价的变化来止盈,这没必要在开仓条件下写个maxprofit:=0 吧,与开仓价没关系啊

不管开仓价的盈亏,而是根据现价与开盘价的差价

[此贴子已经被作者于2013/11/14 11:07:57编辑过]

--  作者:jinzhe
--  发布时间:2013/11/14 11:21:04
--  

variable:n=0;

if h>n then n:=h;

if h-o>100+n and h-o<= (100+n)/2 then sell();

 

这里的O定义成开盘O还是当前K线O,根据自己的需求来

[此贴子已经被作者于2013/11/14 11:21:36编辑过]

--  作者:punkcat401
--  发布时间:2013/11/14 11:44:47
--  
以下是引用jinzhe在2013/11/14 11:21:04的发言:

variable:n=0;

if h>n then n:=h;

if h-o>100+n and h-o<= (100+n)/2 then sell();

 

这里的O定义成开盘O还是当前K线O,根据自己的需求来

[此贴子已经被作者于2013/11/14 11:21:36编辑过]

没看明白。。。N是要自动识别的,由当日开盘价上行大于100点后,以上行100点的位置为低点,上行100点后的高点为高点,这段距离回落一半止盈

[此贴子已经被作者于2013/11/14 11:46:17编辑过]

--  作者:jinzhe
--  发布时间:2013/11/14 13:11:35
--  

variable:m=0;

o1:callstock(stklabel,vtopen,6);

if h>m then m:=h;

if m-o>100+n and h-o<= (100+n)/2 then sell();

 

M是最高价,m-o>100+n表示最高价到达过上行100+n,而H-O<(100+N)/2表示又回落了这一半