金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 先生

帮忙编写下

[复制链接]

37

主题

9944

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

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

示例代码如下,仅供参考,建议你理解代码后,自行尝试修改。
[PEL] 复制代码
VARIABLE:KD_FALG=0,KK_FALG=0;

EMA100:EMA(C,100);
EMA13:EMA(C,13);
EMA8:EMA(C,8);

//成立时为多头趋势否者为空头趋势
KTXS:EMA100>REF(EMA100,1) AND REF(EMA100,1)>REF(EMA100,2);

KD_COND:KTXS=1 and ref(low>EMA100,1) and low<EMA100;//开多条件
KK_COND:=KTXS=0 and ref(high<EMA100,1) and high>EMA100;//开空条件

DTZS:CROSS(EMA13,EMA8);//多头止盈
KTZS:CROSS(EMA8,EMA13);//空头止盈


if KD_COND=1 AND  KD_FALG<2 then begin 
        SELLSHORT(HOLDING<0,HOLDING,MARKET);
        BUY(1,1,MARKET);
        KD_FALG:=KD_FALG+1;//记录多头开仓次数
        KK_FALG:=0;//将记录的空头开仓次数置0.
END

if KK_COND=1 AND  KK_FALG<2 then begin
        SELL(HOLDING>0,HOLDING,MARKET); 
        BUYSHORT(1,1,MARKET);
        KK_FALG:=KK_FALG+1;
        KD_FALG:=0;
END

if  DTZS=1 and HOLDING>0 then begin         
        SELL(1,HOLDING,MARKET); 
        KD_FALG:=0;                
END

if  KTZS=1 and HOLDING<0 then begin 
        SELLSHORT(HOLDING<0,HOLDING,MARKET); 
        KK_FALG:=0;        
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2022-5-24 13:59 | 显示全部楼层
技术006 发表于 2022-5-24 12:28
1.触及到100日均线的价格就开仓
指的是收盘价触及ema100吗?如果是,那么如果连续2根k收盘价都触及了ema ...

图中的粗线是EMA100日均线的。   回调触及到均线价格就开仓  不是指触及均线后以收盘价开仓。
以做多为例:
由空头EMA100均线趋势拐头向上变为多头趋势,确定后第一次回调触及均线价格开仓做多后 连续第二根也触及不算两次。因为开仓后100日均线多头趋势没有发生变化直到8日均线下穿13日均线止盈平仓出局,才算一次。然后等待第二次回调到均线价格在开仓做多 直到8日均线下穿13日均线止盈平仓出局 这样才算两次结束。然后等待多头趋势转为空头趋势后回调开始做空。
如果开仓做多后100日均线发生变化拐头向下为空则止损平仓。等待空头趋势回调到100日均线价格做空
回复

使用道具 举报

37

主题

9944

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

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

1. 回调具体指的是谁回调,【开盘价,收盘价、还是最高最低价】?

2.确定后第一次回调触及均线价格开仓做多后 连续第二根也触及不算两次。因为开仓后100日均线多头趋势没有发生变化直到8日均线下穿13日均线止盈平仓出局,才算一次。然后等待第二次回调到均线价格在开仓做多 直到8日均线下穿13日均线止盈平仓出局 这样才算两次结束。然后等待多头趋势转为空头趋势后回调开始做空。
如果再多头趋势中,没有出现过8日均线下穿13日均线止盈情况,就变成了空头趋势,那么直接平仓?




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

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2022-5-24 15:02 | 显示全部楼层
技术006 发表于 2022-5-24 14:15
1. 回调具体指的是谁回调,【开盘价,收盘价、还是最高最低价】?

2.确定后第一次回调触及均线价格开仓 ...

1.回调触及到100日均线的价格开仓,多头趋势下用最低价,空头趋势下用最高价。
2如果在多头趋势中没有出现过8日均线下穿13日均线止盈情况,就变成了空头趋势。就是按止损平仓了 因为100日均线已经拐头了,我的止损就是100日均线拐头。
回复

使用道具 举报

37

主题

9944

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-5-24 15:08 | 显示全部楼层
示例代码如下,仅供参考,建议你理解代码后,自行尝试修改。拐点的定义中有许多震荡的情况出现,如果要处理,必须给出明确的定义

[PEL] 复制代码
VARIABLE:KD_FALG=0,KK_FALG=0;
 
EMA100:EMA(C,100);
EMA13:EMA(C,13);
EMA8:EMA(C,8);
 
//成立时为多头趋势否者为空头趋势
KTXS:EMA100>REF(EMA100,1) AND REF(EMA100,1)>REF(EMA100,2);
 
KD_COND:KTXS=1 and ref(KTXS=1,1) and ref(low>EMA100,1) and low<EMA100;//开多条件
KK_COND:KTXS=0 and ref(KTXS=0,1)  and ref(high<EMA100,1) and high>EMA100;//开空条件
 
DTZS:CROSS(EMA13,EMA8);//多头止盈
KTZS:CROSS(EMA8,EMA13);//空头止盈
 
 
if KD_COND=1  then begin
        BUY(HOLDING=0 AND  KD_FALG<2,1,MARKET);
        KK_FALG:=0;//在多头趋势下,将空头的平仓标志置0
END
 
if KK_COND=1  then begin
        BUYSHORT(HOLDING=0 AND  KK_FALG<2,1,MARKET);
        KD_FALG:=0;
END

if KTXS=0 then   begin
	SELL(HOLDING>0,HOLDING,MARKET); //当多头趋势转换为空头趋势时,平多头仓位
	KD_FALG:=0;
end
if KTXS=1 then   begin
	 SELLSHORT(HOLDING<0,HOLDING,MARKET);//当空头趋势转换为多头趋势时,平空头仓位
     KK_FALG:=0;   

end
 
if  DTZS=1 and HOLDING>0 then begin        
        多头止盈:SELL(1,HOLDING,MARKET); 
        KD_FALG:=KD_FALG+1;//记录多头平仓次数,              
END
 
if  KTZS=1 and HOLDING<0 then begin
        空头止盈:SELLSHORT(HOLDING<0,HOLDING,MARKET); 
        KK_FALG:=KK_FALG+1;//记录空头平仓次数     
END

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

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2022-5-24 15:57 | 显示全部楼层
技术006 发表于 2022-5-24 15:08
示例代码如下,仅供参考,建议你理解代码后,自行尝试修改。拐点的定义中有许多震荡的情况出现,如果要处理 ...

辛苦你了 。我刚测试了下有时候开仓信号会跟止盈信号重叠导致过早平仓。

1.比如多头趋势中回调到100日均线做多 这时候8日 13日均线是由死叉变成金叉的 在变成死叉才止盈    【100日均线趋势没有变化的情况】
2.多头趋势中回调到100日均线做多 这时候8日 13日均线是金叉向上或持平也是等到死叉止盈【100日均线趋势没有变化的情况】

3.如果在多头趋势中没有开仓做多后没有出现过8日均线13日均线死叉止盈情况,就变成了空头趋势。就是按止损平仓。因为100日均线已经拐头了,我的止损就是100日均线拐头

4.空头趋势中回调到100日均线做空 这时候8日 13日均线是金叉向上后变成死叉又变成金叉才止盈【100日均线趋势没有变化的情况】
5.空头趋势中回调到100日均线做空 这时候8日 13日均线是死叉或持平也是等到金叉止盈【100日均线趋势没有变化的情况】
6.如果在空头趋势中没有出现过8日均线13日均线金叉止盈情况,就变成了多头趋势。就是按止损平仓。因为100日均线已经拐头了,我的止损就是100日均线拐头 001.jpg



补充内容 (2022-5-24 16:07):
是要改成1-6这样。不要跟图片上那样过早就平仓了
回复

使用道具 举报

37

主题

9944

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-5-24 16:07 | 显示全部楼层
你这看图说话,建议你先把上面代码读懂,从逻辑层面沟通更有利于解决问题。而不是看图说话。

主观因素太多了【金叉向上或持平等等】,需要给出明确的定义,才能调整。上面的框架代码中,已经说明了。有些地方需要明确的条件限定才行。

而且像这种【死叉变成金叉的 在变成死叉】,金死叉必然是交替出现的,要么金叉要么死叉。而这种条件没有意义。每个死叉位置都是符合的


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

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2022-5-24 17:49 | 显示全部楼层
技术006 发表于 2022-5-24 16:07
你这看图说话,建议你先把上面代码读懂,从逻辑层面沟通更有利于解决问题。而不是看图说话。

主观因素太 ...

那止盈条件可以这样实现吗?分两种情况
做多止盈:
1.多头趋势中回调到100日均线价格开仓做多时8日均线下穿13日均线已是死叉状态,则第二次8日均线下穿13日均线死叉时止盈。【100日均线趋势没有变化的情况】
2.多头趋势中回调到100日均线价格开仓做多时8日均线上穿13日均线已是金叉状态,则8日均线下穿13日均线死叉止盈。【100日均线趋势没有变化的情况】
做空止盈:
1.空头趋势中回调到100日均线价格开仓做空时8日均线上穿13日均线已是金叉状态,则第二次8日均线上穿13日均线金叉时止盈。【100日均线趋势没有变化的情况】
2.空头趋势中回调到100日均线价格开仓做空时8日均线下穿13日均线已是死叉状态,则8日均线上穿13日均线金叉止盈。【100日均线趋势没有变化的情况】
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-5-24 18:10 | 显示全部楼层
多头止盈:cross(ma13,ma8) and c<ma100 and count(cross(ma13,ma8),enterbars)=2;

把这个做条件试下,你这个程序编写很多地方光从文字不好描述也不好理解,建议用户最好自己有能力编写,试着自己去学习下

有些程序如果逻辑一旦稍显复杂,那么只有当事人自己最理解,就像写作文一样,自己的想法自己最理解也最能写的出来
如果要找他人写比如自传,那么就是找执笔人,目前论坛这无法提供帮写类似的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-23
曾用名:
 楼主| 发表于 2022-5-24 20:49 | 显示全部楼层
技术008 发表于 2022-5-24 18:10
多头止盈:cross(ma13,ma8) and c

是啊我的系统是可以盈利的,想更规避情绪的影响用自动交易来解决。但是自己不会编写代码不知道从哪里开始一步步学。
其实你帮我写的这个框架是对的,只有2点需要调整的地方
1.是 100日均线趋势由空拐头变多趋势过程中出现的正常ema均线是可以认为还是空的 不需要平仓 直到完全确定是多头止损或者止盈。 由多转空也是这样。
2.是止盈问题,刚你给的代码只能触发第一种情况,多头趋势中回调到100日均线价格开仓做多时8日均线下穿13日均线已是死叉状态,则第二次8日均线下穿13日均线死叉时止盈。【100日均线趋势没有变化的情况】 。第二种情况开仓做多时8日均线上穿13日均线已是金叉状态,则8日均线下穿13日均线死叉止盈。无法触发止盈。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-30 13:39 , Processed in 0.117705 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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