金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3822|回复: 15

老师您好!请教编写问题

[复制链接]

2

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2023-10-25
曾用名:
发表于 2023-10-26 10:13 | 显示全部楼层 |阅读模式
老师您好!有以下编写问题,请帮编写,谢谢!


策略1:多单,
条件1:15分钟MACD 金叉并且K线突破60线
条件2:1小时MACD金叉并且K线突破60线
条件3:日线MACD 金叉并且K线突破60线
条件4:日线MACD 底背离


空单
条件5:15分钟MACD 死叉并且K线突破60线
条件6:1小时MACD死叉并且K线突破60线
条件7:日线MACD 金叉并且K线突破60线
条件8:日线MACD 顶背离

执行:
a.满足条件1,2,3,4 输出笑脸,满足条件5输出西瓜

b. 满足条件5,6,7 ,8输出哭脸,满足条件1输出西瓜


策略2:
多单:
条件1:均线10和均线20和均线60 多头排列
条件2:3分钟周期里面K线在均线20和60均线上方
条件3: MACD 从下至上穿越零轴
条件4:K线下穿均线5

空单:
条件5:均线60 和均线20和均线10 空头排列
条件6:3分钟周期里面K线在均线20和60均线上方
条件7: MACD 从上至下穿越零轴
条件8:K线上穿均线5

执行:
满足条件1,2,3, 输出笑脸,满足条件4输出西瓜

满足条件5,6,7, 输出笑脸,满足条件8输出西瓜
回复

使用道具 举报

2

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2023-10-25
曾用名:
 楼主| 发表于 2023-10-26 12:06 | 显示全部楼层
请老师,指正和修改,   谢谢!

ma1:ma(c,n1);
ma2:ma(c,n2);
ma3:ma(c,n3);
ma4:ma(c,n4);

DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  : EMA(DIFF,M);
MACD1 : 2*(DIFF-DEA), COLORSTICK;

c_60min:callstock('',vtclose,4,0);

c_15min:callstock('',vtclose,2,0);

A:=CROSS(DEA,DIFF);

B:=CROSS(DIFF,DEA);



macd15:"A.macd15#MIN15";//15分钟

macd60:"B.macd60#MIN60";//60分钟

macdDAY:"B.macdDAY#DAY";//60分钟

k:=macd15>0 AND macd60>0 AND CROSS(DIFF,DEA)AND macdDAY>0 AND c_60min>ma4 AND CROSS(c_15min,ma4);

u:=macd15<0 AND macd60<0 AND CROSS(DEA,DIFF)AND macdDAY<0 AND c_60min<ma4 AND CROSS(ma4,c_15min);

if k then BEGIN
   DRAWICON(k,h,1);//满足条件位置笑脸;   
END

if u then
begin
DRAWICON(u,h,1);//满足条件位置笑脸;
end

补充内容 (2023-10-26 12:37):
ma1:ma(c,n1);
ma2:ma(c,n2);
ma3:ma(c,n3);
ma4:ma(c,n4);

DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  : EMA(DIFF,M);
MACD1 : 2*(DIFF-DEA), COLORSTICK;

c_60min:callstock('',vtclose,4,0);//60分钟K线

c_15min:callstock('',vtclose,2,0);//15分钟K线

A:=CROSS(DEA,DIFF);// MACD金叉

B:=CROSS(DIFF,DEA);// MACD死叉


macd15j:"A.macd15j#MIN15";//15分钟金叉

macd15s:"B.macd15s#MIN15";//15分钟死叉

macd60j:"A.macd60#MIN60";//60分钟金叉

macd60s:"B.macd60#MIN60";//60分钟金叉

macdDAYJ:"A.macdDAY#DAY";//日线金叉

macdDAYS:"B.macdDAY#DAY";//60分钟死叉


k:=macd15j>0 AND macd60j>0 AND CROSS(DIFF,DEA)AND macdDAYj>0 AND c_60min>ma4 AND CROSS(c_15min,ma4);

u:=macd15s>0 AND macd60s>0 AND CROSS(DEA,DIFF)AND macdDAYs<0 AND c_60min<ma4 AND CROSS(ma4,c_15min);

if k then BEGIN
   DRAWICON(k,h,1);//满足条件位置笑脸;   
END

if u then
begin
DRAWICON(u,h,1);//满足条件位置笑脸;
end
回复

使用道具 举报

2

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2023-10-25
曾用名:
 楼主| 发表于 2023-10-26 12:56 | 显示全部楼层
ma1:ma(c,n1);
ma2:ma(c,n2);
ma3:ma(c,n3);
ma4:ma(c,n4);

DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  : EMA(DIFF,M);
MACD1 : 2*(DIFF-DEA), COLORSTICK;

c_60min:callstock('',vtclose,4,0);//60分钟K线

c_15min:callstock('',vtclose,2,0);//15分钟K线

A:=CROSS(DEA,DIFF);// MACD金叉

B:=CROSS(DIFF,DEA);// MACD死叉

C1:=c>ma4;

D1:=c<ma4;


macd15j:"A.macd15j#MIN15";//15分钟金叉

macd15s:"B.macd15s#MIN15";//15分钟死叉

c_15minj:"c1.c_15minj#MIN15";//15分钟周期K线上穿60均线

c_15mins:"d1.c_15mins#MIN15";//15分钟周期K线下穿60均线

macd60j:"A.macd60#MIN60";//60分钟金叉

macd60s:"B.macd60#MIN60";//60分钟金叉

c_60minj:"c1.c_60minj#MIN60";//60分钟周期K线上穿60均线

c_60mins:"d1.c_60mins#MIN60";//60分钟周期K线下穿60均线

macdDAYJ:"A.macdDAY#DAY";//日线金叉

macdDAYS:"B.macdDAY#DAY";//日线死叉

c_DAYj:"c1.c_DAYj#DAY";//日线周期K线上穿60均线

c_DAYs:"d1.c_DAYs#DAY";//日线周期K线下穿60均线



k:=macd15j>0 AND macd60j>0 AND macdDAYJ>0 AND c_15minj>0 and c_60minj>0 and c_DAYj>0;

u:=macd15s>0 AND macd60s>0 AND macdDAYs>0 AND c_15mins>0 and c_60mins>0 and c_DAYs>0;

if k then BEGIN
   DRAWICON(k,h,1);//满足条件位置笑脸;   
END

if u then
begin
DRAWICON(u,h,1);//满足条件位置笑脸;
end
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-10-26 13:24 | 显示全部楼层
跨周期调用是需要新建指标的,你这里似乎没有新建指标,都在一个指标下肯定是不对的。
https://www.weistock.com/docs/PE ... 91%A8%E6%9C%9F.html

首先新建一个指标A:
[PEL] 复制代码
input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
DIFF :EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :EMA(DIFF,M);
MACD1 :2*(DIFF-DEA), COLORSTICK;


MACDJC:CROSS(MACD1,0);
MACDSC:CROSS(0,MACD1);

MA60:MA(C,60);


con1:MACDJC and c>ma60;
con2:MACDSC and c<ma60;

//背离,你也可以按照自己定义的背离来实现
N:=BARSLAST(CROSS(DIFF,DEA))+1;
N1:=BARSLAST(CROSS(DEA,DIFF))+1;
DIFF1:=REF(REF(DIFF,N-1),1);
DIFF2:=REF(REF(DIFF,N1-1),1);
C1:=REF(REF(C,N-1),1);
C2:=REF(REF(C,N1-1),1);
DBL1:DIFF>DIFF1 AND CROSS(DIFF,DEA) AND C<C1; //底背离
DBL:DIFF<DIFF2 AND  CROSS(DEA,DIFF) AND C>C2; //顶背离



然后在交易指标里进行调用,这里以多头为例,空头部分就是改下调用的变量就行了:
[PEL] 复制代码
15con:"a.con1#min15";
60con:"a.con1#min60";
daycon:"a.con1#day";

day_bl:"a.dbl1#day";
kd:15con and 60con and daycon and day_bl;

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-10-26 13:31 | 显示全部楼层
第二个策略,也以多头为例,提供其中部分代码:
[PEL] 复制代码
ma10:ma(c,10);
ma20:ma(c,20);
ma60:ma(c,60);

dtpl:ma10<ma20 and ma20<ma60;//多头排列
ktpl:ma10>ma20 and ma20>ma60;

input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
diff :ema(close,s) - ema(close,p);
dea  :ema(diff,m);
macd1 :2*(diff-dea), colorstick;


macdjc:cross(macd1,0);//macd金叉
macdsc:cross(0,macd1);

ma5:ma(c,5);
majc:cross(c,ma5);//上穿五周期均线
masc:cross(ma5,c);

ma20_min3:"ma.ma1#min3"(20);//3分钟周期的20周期均线
ma60_min3:"ma.ma1#min3"(60);
c_min3:CALLSTOCK('',vtCLOSE,17,0);//3分钟周期K线价格

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2023-10-25
曾用名:
 楼主| 发表于 2023-10-26 13:35 | 显示全部楼层
技术009 发表于 2023-10-26 13:24
跨周期调用是需要新建指标的,你这里似乎没有新建指标,都在一个指标下肯定是不对的。
https://www.weisto ...

谢谢!
回复

使用道具 举报

2

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2023-10-25
曾用名:
 楼主| 发表于 2023-10-26 13:46 | 显示全部楼层
技术009 发表于 2023-10-26 13:31
第二个策略,也以多头为例,提供其中部分代码:
[mw_shl_code=pel,true]ma10:ma(c,10);
ma20:ma(c,20);

执行的话,可以给示例么
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-10-26 14:07 | 显示全部楼层
执行?什么意思。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2023-10-25
曾用名:
 楼主| 发表于 2023-10-26 14:11 | 显示全部楼层
技术009 发表于 2023-10-26 14:07
执行?什么意思。

第二策略的执行:

k:=dtpl>0 and macdjc>0 and c_min3>ma105_min3 and macdjc>0;

if k then BEGIN
    DRAWICON(k,h,1);//满足条件位置笑脸;   ;   
END

补充内容 (2023-10-26 14:17):
或者说以这个多头为例,补充成一个完整的策略,作为参考,谢谢
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-10-26 14:15 | 显示全部楼层
k:=dtpl and macdjc and c_min3>ma20_min3 and  c_min3>ma60_min3;
DRAWICON(k,h,1);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-8-1 07:33 , Processed in 0.087078 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表