以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  策略编写求助区  (http://weistock.com/bbs/list.asp?boardid=11)
----  再求帮忙写公式,谢谢啦!  (http://weistock.com/bbs/dispbbs.asp?boardid=11&id=75056)

--  作者:火焱14895
--  发布时间:2015/1/27 17:29:32
--  再求帮忙写公式,谢谢啦!
求帮忙写公式,谢谢啦!  发帖心情 Post By:2015/1/25 8:35:48 [只看该作者

用于IF的一分钟日内交易K线

1.MACD(26,12,9,1)DIF向上交叉MACD,买进;DIF向下交叉MACD,卖出!

2.设40个价位的移动止盈。

3.初始开仓1手,如果本次操作盈利,下一次仍然开仓1手;如果本次操作亏损,下一次开仓加多1手,即开两手;如果第二次仍然亏损,第三次开仓3手,以此类推(最高开仓数为5手),直到完全弥补前面(当天)的亏损,又回到开仓1手。

以上为基本要求,是否可以写成自动化交易程序?

万分感谢。

已经有位老师帮我写过一次,但用过了!根本无效,乱码!死叉还买进!金叉却卖出!一开单就两手!
在网上问,又没人复我!!!!!!!急!!!!!!

--  作者:火焱14895
--  发布时间:2015/1/27 19:21:21
--  
图片点击可在新窗口打开查看
--  作者:pyd
--  发布时间:2015/1/28 9:50:06
--  

之前少写了止盈的,另外你图上输出开仓平条件就知道该不该开仓。

VARIABLE:n=1,ying=0,kui=0;
dea:stkindi(\'\',\'macd.dea\',0,1);
diff:stkindi(\'\',\'macd.diff\',0,1);
jc:cross(dea,diff);//金叉
sc:cross(diff,dea);//死叉

if date<>ref(date,1) then begin //第二天重置为0重新计算
 n:=1;
 ying=0;
 kui:=0;
 end

if jc and n<=5 then begin //限制最多5手
buy(holding=0,n,market);
end
//移动止盈
if h-enterprice>=30*mindiff then sell(holding>0,holding,market);

if sc then begin
sell(holding>0,holding,market);
if numprofit(1)>0 then begin//盈利n赋值为1手
n:=1;
ying:=numprofit(1)+ying;//盈利的和
end

if numprofit(1)<0 then begin //亏损n+1手
 n:=n+1;
 kui:=numprofit(1)+kui;//亏损总数
 end
 end
if ying>kui then n:=1;

if n>=5 then n:=5;

 


--  作者:火焱14895
--  发布时间:2015/1/28 10:32:37
--  
谢谢!空单会开吗?
--  作者:火焱14895
--  发布时间:2015/1/28 10:50:22
--  
刚才再试了一下,还是那几个问题:1,金死叉是下单相反了,本该下多单的,却下了平多单。2,本来平单后,应该下一手空单,但却没有下空单。麻烦你帮忙看看,谢谢
--  作者:pyd
--  发布时间:2015/1/28 10:56:27
--  

条件我刚才是按你上个帖子里的diff和dea写的,没看到你现在改成macd了,这个我一会改下。

1楼你只说买进卖出我就只写了开多平多,你没有说清什么条件开多或开空,请把条件描述清楚

[此贴子已经被作者于2015/1/28 10:59:18编辑过]

--  作者:火焱14895
--  发布时间:2015/1/28 12:50:30
--  
只要是死叉就开空单,也就是平多单的时候就接着开空单。如果上手多单还是亏钱,下手空单就加多一手空单,直到把前面的亏损赚回来为止(封顶是五手)。而且,盈利(指当天总盈利)后的下一手单,只开一手单。


意思是:平空和开多是同时的,平多开空也是同时的。只是手数随盈亏增减。(这是日内交易)


谢谢,不知道这样清晰了吗?谢谢

--  作者:火焱14895
--  发布时间:2015/1/29 8:23:19
--  
尊敬的老师:
       我还在等着您的回复啦!谢谢谢谢谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

--  作者:pyd
--  发布时间:2015/1/29 9:14:53
--  
没有专门的工作人员编写求助区的策略,一般是其他区的工作人员抽空编写,如果您急需编写,可以请其他收费人员编写。
--  作者:pyd
--  发布时间:2015/1/29 13:39:04
--  

VARIABLE:n=1,盈亏=0;
macd:stkindi(\'\',\'macd.macd1\',0,1);
diff:stkindi(\'\',\'macd.diff\',0,1);
jc:cross(diff,macd);//金叉
sc:cross(macd,diff);//死叉
if date<>ref(date,1) then begin //第二天重置为0重新计算
 n:=1;
 盈亏:=0;
 end
 if n>=5 then n:=5;
 
 if jc and n<=5  THEN begin
sellshort(holding<0,holding,market);
buy(holding=0,n,market);
盈亏:=NUMPROFIT(1)+盈亏;
if 盈亏<0 and n<5 then n:=n+1;
if 盈亏>0 then n:=1;
end

if  sc and n<=5 then BEGIN
sell(holding>0,holding,market);
buyshort(holding=0,n,market);
盈亏:=NUMPROFIT(1)+盈亏;
if 盈亏<0 and n<5 then n:=n+1;
if 盈亏>0 then n:=1;
end

if hhv(h,enterbars+1)-l>=40*mindiff then
 sell(holding>0,holding,market);

if h-llv(l,enterbars+1)>=40*mindiff then 
sellshort(holding<0,holding,market);