金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2057|回复: 0

求老师看代码找问题

[复制链接]

9

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2023-8-7
曾用名:
发表于 2023-12-8 12:57 | 显示全部楼层 |阅读模式
我现在的系统是5日均线在40日上,同时收盘价9日新高开多。5日均线在40日均线下,同时收盘价创9日新低,开空。每次止损为总资金的1%,开仓手数为总资金*1%/每手乘数/2/ATR,止盈和止损都一样,
开仓后最高点反向2倍ATR止盈止损。开仓与平仓以收盘价为准,盘中开平仓信号不算。
下面是别人帮我写的代码,请老师帮忙看看有什么问题,我自身有个问题。

INPUT:bfb(0.01,0.01,1,0.01);//下注比例
INPUT:M5(5,1,50,1);//短期均线
INPUT:M40(40,25,100,1);//长期均线
INPUT:N(9,1,50,1);//N日收盘价高低
INPUT:ATRBS(2,1,3,1);//N倍ATR(真实波动幅度均值),结束头寸




MA1:MA(C,M5);//短期均线收盘价
MA2:MA(C,M40);//长期均线收盘价


ZGS:=HHV(C,N);//N天内收盘价最高值
ZDS:=LLV(C,N);//N天内收盘价最低值


M:=14;
TR1 := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR :MA(TR1,m);//(真实波动幅度均值,一般为14日均值)
Matr:ATR,linethick0;
ss:=( ASSET*bfb)/(ATR*MULTIPLIER*ATRBS );//开仓手数等于账户资金乘以0.002/ATR乘以每点价值     看看这行有问题吗?
KD:=MA1>MA2 AND C>REF(ZGS,1);//短期均线大于长期均线并且今日收盘价高于前N个交易日最高收盘价。
KK:=MA2>MA1 AND C<REF(ZDS,1);//长期均线大于短期均线并且今日收盘价低于前N个交易日最低收盘价。


IF KD AND HOLDING<=0 THEN//平空开多条件
BEGIN
BUY(HOLDING=0 ,SS,MARKETR);//开多条件   收盘价开多,持仓等于0,按照规定手数开
END

IF KK AND HOLDING>=0 THEN//平多开空条件
BEGIN


BUYSHORT(HOLDING=0,SS,MARKETR);//开空条件  收盘价开空,持仓等于0,按照规定手数开。
END







ENTRYHIGH:=HHV(C,ENTERBARS+1);//上次开仓到当前的最高收盘价
ENTRYLOW:=LLV(C,ENTERBARS+1);//上次开仓到当前的最低收盘价
DBB:=C<=REF(ENTRYHIGH,1)-ATRBS*ATR;// 上次开仓到现在的途中最高价减去N倍ATR大于等于收盘价
KBB:=C>=REF(ENTRYLOW,1)+ATRBS*ATR;// 上次开仓到现在的途中最低价加上N倍ATR小于等于收盘价
DBBJ:=MIN(OPEN,REF(ENTRYHIGH,1)-ATRBS*ATR);//最小值 收盘价和最高价减去N倍ATR??
KBBJ:=MAX(OPEN,REF(ENTRYLOW,1)+ATRBS*ATR);//  最大值 收盘价和最低价加上N倍ATR??
//----------------------------------------------------------------------------------------------------




//画出止损通道: 持多单时只画多单对应的跟踪止损通道,  持空单时只画空单对应的跟踪止损通道 (防止任何时候都画出两个通道, 显示太乱了) :
止损: IF(HOLDING>0, HHV(REF(C,1),IF(ENTERBARS<=1,1,ENTERBARS))-ATRBS*ATR, IF(HOLDING<0,LLV(REF(C,1),IF(ENTERBARS<=1,1,ENTERBARS))+ATRBS*ATR,DRAWNULL)), COLORWHITE, LINETHICK2;
//----------------------------------------------------------------------------------------------------
IF KBB AND HOLDING<0 AND ENTERBARS>=1 THEN// 条件
BEGIN
SELLSHORT(HOLDING<0,0,MARKETR);//平空
END

IF DBB AND HOLDING>0 AND ENTERBARS>=1 THEN//条件
BEGIN
SELL(HOLDING>0,0,MARKETR);//平多
END


[size=0.83em]截图202312072036553354.png (16.56 KB, 下载次数: 0)
下载附件
[color=rgb(153, 153, 153) !important]2023-12-7 20:36 上传







就像8.29日这个开仓信号,收盘价为2996,ATR为35,那么止损不应该是2996-2*35=2926吗?为什么公式里给出的止损为2899?


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-3 04:20 , Processed in 0.093222 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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