Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:再求帮忙写公式,谢谢啦!

1楼
火焱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手。

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

万分感谢。

已经有位老师帮我写过一次,但用过了!根本无效,乱码!死叉还买进!金叉却卖出!一开单就两手!
在网上问,又没人复我!!!!!!!急!!!!!!
2楼
火焱14895 发表于:2015/1/27 19:21:21
图片点击可在新窗口打开查看
3楼
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;

 

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

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

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

[此贴子已经被作者于2015/1/28 10:59:18编辑过]
7楼
火焱14895 发表于:2015/1/28 12:50:30
只要是死叉就开空单,也就是平多单的时候就接着开空单。如果上手多单还是亏钱,下手空单就加多一手空单,直到把前面的亏损赚回来为止(封顶是五手)。而且,盈利(指当天总盈利)后的下一手单,只开一手单。


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


谢谢,不知道这样清晰了吗?谢谢
8楼
火焱14895 发表于:2015/1/29 8:23:19
尊敬的老师:
       我还在等着您的回复啦!谢谢谢谢谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9楼
pyd 发表于:2015/1/29 9:14:53
没有专门的工作人员编写求助区的策略,一般是其他区的工作人员抽空编写,如果您急需编写,可以请其他收费人员编写。
10楼
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);

共10 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in .06250 s, 2 queries.