金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3883|回复: 6

怎么把通达信的指标公式转化成金字塔来做程序化交易

[复制链接]

10

主题

38

帖子

38

积分

Rank: 1

等级: 新手上路

注册:
2022-1-11
曾用名:
发表于 2022-5-24 21:31 | 显示全部楼层 |阅读模式
N:=33;
UR:=6;
LR:=6;
TC1:=IF(H=HHV(H,8*UR),H,DRAWNULL);
TC2:=CONST(BARSLAST(TC1=H))+1;
UPPER:=CONST(IF(TC2=1,H,REF(H,TC2-1)));
BC1:=IF(L=LLV(L,8*LR),L,DRAWNULL);
BC2:=CONST(BARSLAST(BC1=L))+1;
LOWER:=CONST(IF(BC2=1,L,REF(L,BC2-1)));
LP:=CURRBARSCOUNT<=BC2 AND L=LOWER;{低点定位}
HP:=CURRBARSCOUNT<=TC2 AND H=UPPER;{高点定位}
STICKLINE(IF(BC2>TC2,HP,LP),LOWER,UPPER,0,0),COLOR628962;{右侧竖线}
STICKLINE(IF(BC2>TC2,LP,HP),LOWER,UPPER,0,0),COLOR628962;{左侧竖线}
NOD:=(IF(TC2>BC2,TC2,BC2)-IF(TC2>BC2,BC2,TC2));{用时}
LR1:=FORCAST(C,NOD+1);
NP:IF(CURRBARSCOUNT<=MAX(BC2,TC2),CONST(IF(MIN(TC2,BC2)=1,LR1,REF(LR1,MIN(TC2,BC2)-1))),DRAWNULL),POINTDOT,COLORFFFFFF;{近点}
LR2:=SLOPE(C,NOD+1);
LR3:=CONST(IF(MIN(TC2,BC2)=1,LR2,REF(LR2,MIN(TC2,BC2)-1)));
FP:NP-LR3*(NOD),POINTDOT,COLORFFFFFF;{远点}
EQU:(NP+FP)/2,POINTDOT,COLORFFFFFF;{中点}
AD:=ABS(NP-FP);{高差};
DBL:=BARSLAST(BC1!=DRAWNULL)+1;
DBH:=BARSLAST(TC1!=DRAWNULL)+1;
BSP:=IF(BC2>TC2,DBL,DBH)-1;
LRL:=IF(NP>FP,FP+AD/NOD*BSP,FP-AD/NOD*BSP);
AT1:=IF(BETWEEN(CURRBARSCOUNT,BC2,TC2) AND H>LRL,H,LRL);
AT2:=HHV(AT1-LRL,MAX(BC2,TC2));
AT3:=CONST(BARSLAST(AT1-LRL=AT2));
AT4:=CONST(IF(AT3=0,H,REF(H,AT3)));
AT5:=CONST(IF(AT3=0,AT1-LRL,REF(AT1-LRL,AT3)));
ATL:=LRL+AT5;
UT1:=IF(BETWEEN(CURRBARSCOUNT,BC2,TC2) AND L<LRL,L,LRL);
UT2:=HHV(LRL-UT1,MAX(BC2,TC2));
UT3:=CONST(BARSLAST(LRL-UT1=UT2));
UT4:=CONST(IF(UT3=0,H,REF(H,UT3)));
UT5:=CONST(IF(UT3=0,LRL-UT1,REF(LRL-UT1,UT3)));
UTL:=LRL-UT5;
RH:=IF(CURRBARSCOUNT>=MIN(BC2,TC2)-10,ATL,CONST(REF(ATL,MIN(BC2,TC2)-11)));
RL:=IF(CURRBARSCOUNT>=MIN(BC2,TC2)-10,UTL,CONST(REF(UTL,MIN(BC2,TC2)-11)));
{IF(NP>FP,IF(LRL<=RH,LRL,DRAWNULL),IF(LRL>=RL,LRL,DRAWNULL)),COLORRED;}{中轨画线}
IF(NP>FP,IF(ATL<=RH,ATL,DRAWNULL),IF(ATL>=RL,ATL,DRAWNULL)),COLORYELLOW;{上轨画线}
IF(NP>FP,IF(UTL<=RH,UTL,DRAWNULL),IF(UTL>=RL,UTL,DRAWNULL)),COLORFFFFFF;{下轨画线};

这是我在通达信用的一个指标,想搬到金字塔来做自动程序化交易需要怎么改??
想用这个通道线实现:
如果通道线向上,那么市价打到下轨做多,打到上轨平仓,若开仓后盈利曾经超过2%但没打到上轨平仓又折返了,那么回到盈利仅剩1%时以市场价保本价平仓。
如果通道线向下,那么市价打到上轨做空,打到下轨平仓,若开仓后盈利曾经超过2%但没打到下轨平仓又折返了,那么回到盈利仅剩1%时以市场价保本价平仓。
开仓后自带亏损2%市价止损。
每天夜盘22:50,每天下午14:50如果还有持仓就全部平仓。


截图202205242116442085.png
回复

使用道具 举报

37

主题

9943

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-5-25 01:01 | 显示全部楼层
本帖最后由 技术006 于 2022-5-25 08:33 编辑

这个指标无法直接改成交易策略。建议你直接提供交易思想以及相关量化定义,我们评估后尝试是否可以实现。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

38

帖子

38

积分

Rank: 1

等级: 新手上路

注册:
2022-1-11
曾用名:
 楼主| 发表于 2022-5-25 09:46 | 显示全部楼层
技术006 发表于 2022-5-25 01:01
这个指标无法直接改成交易策略。建议你直接提供交易思想以及相关量化定义,我们评估后尝试是否可以实现。

//定义参数
Input:N(12,1,100,1);//均线和标准差参数
Num:=1;//开仓手数
//中间变量
Ma10:Ma(c,N);//10日均线
Std1:=Std(c,N);//一个标准差
Upper:=Ma10+Std1;//通道上轨
Bottom:=Ma10-Std1;//通道下轨
BuyCond:=h>ref(h,1) and l>ref(l,1) and l<=Bottom;//上涨趋势中价格触及下轨
SellCond:=h<ref(l,1) and l<ref(l,1) and h>=Upper;//下跌趋势中价格触级上轨开仓
//下单语句
if BuyCond and then begin
Sellshort(holding<0,0,market);//市价平空
Buy(holding=0,Num,market);//市价开多
end
if SellCond AND then begin
Sell(holding>0,0,market);//市价平多
BuyShort(holding=0,Num,market);//市价开空
end
//止盈止损
v1:abs(c-AVGENTERPRICE)/AVGENTERPRICE;     //计算数值大小
cd:hhv(v1,ENTERBARS+1)>=0.02;              //开仓以来满足过V1大于2%的情况
if (c-AVGENTERPRICE)/AVGENTERPRICE>=0.01 then 多保本:sell(1,holding,market);
if (AVGENTERPRICE-c)/AVGENTERPRICE>=0.01 then 空保本:sellshort(1,holding,market);

IF TIME>145000 THEN//如果时间在14点50分以后,那么
BEGIN
SELL(HOLDING>0,0,MARKET);//如果持有多单,以市价卖出所有持仓量
SELLSHORT(HOLDING<0,0,MARKET);//如果持有空单,以市价空头卖出所有持仓量                                                                                    
END


我的思路大概就是这样的,就是想把这个用均线画的通道线换成我上面截图这样的平行通道线,不知道怎么弄,而且不知道为什么,我时间和周期都用回测时间段选择的是今年3.15-5.23的一分钟数据,数据也补充完全的,回测出来数据全是0,不知到是不是我上面这个代码有啥不对的地方吗
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-5-25 10:05 | 显示全部楼层
1.
if BuyCond and then begin
Sellshort(holding<0,0,market);//市价平空
Buy(holding=0,Num,market);//市价开多
end
if SellCond AND then begin
Sell(holding>0,0,market);//市价平多
BuyShort(holding=0,Num,market);//市价开空
end

删除上面这里的问题,你这个代码本身加载是有信号的,回测也不会有问题的。
2.那个通道的实现不了。我看了通达信上的效果,不适合转到程序化。这个通道只有最近的一段,没有历史,这不符合我们图表程序化的基本机制,你相同的逻辑必须对历史和现在同样奏效才行。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

38

帖子

38

积分

Rank: 1

等级: 新手上路

注册:
2022-1-11
曾用名:
 楼主| 发表于 2022-5-25 10:24 | 显示全部楼层
技术009 发表于 2022-5-25 10:05
1.
if BuyCond and then begin
Sellshort(holding0,0,market);//市价平多

[img][/img]hh:=hhv(h,0);
hhh:=h;
aa:=BARSLAST(h=hh[datacount]);
ba:=datacount-aa;
ja:=1;
tm1:=999999;
for i1=ba[datacount]+1 to datacount do begin
    k1:=(hh[datacount]-hhh[i1])/ja;
  if k1<tm1  then begin
    tm1:=k1;
    ts1:=ja;
  end;
  ja:=ja+1;
end;
A1:LINEVALUE(h=hh[datacount] and aa=0,h,BARPOS=datacount-aa[datacount]+ts1,h,0,0),colorffff54;
cha:=hhv(abs(l-a1),aa);
A2:a1-cha[datacount],colorffff54;
AI:a1-cha[datacount]/2,colorffff54,LINEDASH;

ll:=llv(l,0);
lll:=l;
a3:=BARSLAST(l=ll[datacount]);
b3:=datacount-a3;
j3:=1;
tm3:=999999;
for i3=b3[datacount]+1 to datacount do begin
    k3:=(lll[i3]-ll[datacount])/j3;
  if k3<tm3  then begin
    tm3:=k3;
    ts3:=j3;
  end;
  j3:=j3+1;
end;
B1:LINEVALUE(l=ll[datacount] and a3=0,l,BARPOS=datacount-a3[datacount]+ts3,l,0,0),color5454ff;
chb:=hhv(abs(h-b1),a3);
b2:b1+chb[datacount],color5454ff;
bi:b1+chb[datacount]/2,color5454ff,LINEDASH;



那像这样可以实现吗?这个是在金字塔会显示图像了
这个通道线可以实现下面这些功能吗?
如果通道线向上,那么市价打到下轨做多,打到上轨平仓,若开仓后盈利曾经超过2%但没打到上轨平仓又折返了,那么回到盈利仅剩1%时以市场价保本价平仓。
如果通道线向下,那么市价打到上轨做空,打到下轨平仓,若开仓后盈利曾经超过2%但没打到下轨平仓又折返了,那么回到盈利仅剩1%时以市场价保本价平仓。
开仓后自带亏损2%市价止损。
每天夜盘22:50,每天下午14:50如果还有持仓就全部平仓。
回复

使用道具 举报

10

主题

38

帖子

38

积分

Rank: 1

等级: 新手上路

注册:
2022-1-11
曾用名:
 楼主| 发表于 2022-5-25 10:28 | 显示全部楼层
明月 发表于 2022-5-25 10:24
[/img]hh:=hhv(h,0);
hhh:=h;
aa:=BARSLAST(h=hh[datacount]);

就不看历史,
假如红色通道是上升通道线最新行情打到下轨就开仓做多
假如红色通道是下降通道线最新行情打到上轨就开仓做空
可以吗?
回复

使用道具 举报

37

主题

9943

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-5-25 10:36 | 显示全部楼层
图表交易必须有历史信号。不是什么指标都能硬结合的,不可能违背图表的机制。建议你去看看布林轨的指标,而你这种指标最多也就是个划线指标。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-29 06:40 , Processed in 0.157743 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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