以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  模型编写求助!只交易第一次  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=74045)

--  作者:300qh
--  发布时间:2015/1/6 15:35:14
--  模型编写求助!只交易第一次
思路如下:
 m1,m2,m3三根均线(5日,30日,200日),当价格站上M3线,并且m1突破m2开多,10日最低点止损,m1死叉m2平多。
要求,站上m3线后,只交易第一次的m1与m2金叉开多,后面再次金叉不交易。
或者,定义出金叉的次数,让我能直接选择第几次用来进行交易。
比如:我想交易第二次的机会,或者交易第一第二两次机会。
麻烦高手看到编写一下喽

--  作者:netfox
--  发布时间:2015/1/6 15:42:31
--  
加一句 holding=0  立马不开新仓
--  作者:jinzhe
--  发布时间:2015/1/6 15:45:09
--  

一般这样计算次数就用全局变量

variable:N=0;//定义n

if 金叉 then n:=n+1;//金叉一次就自加1

if n=某个数值 and holding=0 then begin

    开仓语句......;

    n:=0;

end//当金叉次数到达某个数值之后,开仓,并且重置n为0

 

 


--  作者:300qh
--  发布时间:2015/1/6 16:20:30
--  
能直接帮我把整段思路编一下好吗?
--  作者:300qh
--  发布时间:2015/1/6 16:21:28
--  
我要的是只开第一次的金叉,不是只开一手的意思。
--  作者:jinzhe
--  发布时间:2015/1/6 16:26:13
--  

variable:N=0;//定义n

if 金叉 then n:=n+1;//金叉一次就自加1

if n=1 and holding=0 then begin

    开仓语句......;

   end

只开第一次那么就这样写,然后在希望再次开仓的时候把n重新赋值为0


--  作者:300qh
--  发布时间:2015/1/6 16:56:29
--  
//根据老师上面讲的,我写了如下,但是好象有时候在m3均线上,不止一次交易。请教一下我哪里写的不对。

variable:N=0;//定义n
input:m1(5,1,100,1),m2(30,1,100,1),m3(200,1,500,1);
e1:ema(c,m1);
e2:ema(c,m2);
e3:ema(c,m3);
L10:ref(llv(l,10),1);

if c>e3 and cross(e1,e2) then n:=n+1;//金叉一次就自加1
if n=1 and holding=0 then begin
buy(holding=0,1,market);
end

if cross(e2,e1) then begin
sell(holding>0,0,market);
end

if c<e3 then n:=0;

pdzs:cross(L10,c);
止损:SELL(pdzs,0,market);   

--  作者:jinzhe
--  发布时间:2015/1/6 17:04:15
--  

截图说明一下哪里的条件满足后不止下了一次


--  作者:300qh
--  发布时间:2015/1/6 17:39:10
--  
找到原因了,开仓条件里没写交叉条件进去。造成平仓后又开仓
[此贴子已经被作者于2015/1/6 17:40:17编辑过]