金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2852|回复: 6

请老师帮忙编写

[复制链接]

1

主题

4

帖子

4

积分

Rank: 1

等级: 新手上路

注册:
2023-4-23
曾用名:
发表于 2023-4-23 22:21 | 显示全部楼层 |阅读模式
图表交易系统
一、开平仓语句编写
Y取值范围在-100100之间
1)开平仓信号
-m<Y<m时使用以下开平仓信号快平仓:
平多开空:crossd,j;
平空开多:crossj,d;
2)止损和反手
多单止损反手开空条件:Y<-M;
空单止损反手开多条件:Y>M;
3)加仓
多单持有且当Y>M时,在crossJ,D)时加多仓;
空单持有且当Y<-M时,在crossD,J)时加空仓;
4)开仓比例
首次开仓比例为初始资金量的20%,第二次加仓20%,第三次加仓10%,第四次加仓10%。最多加仓四次。
二、关于CKZ(参考值)的取值问题
假设起点处Y处于上升途中,只要Y>REF(Y,1),则设YCKZ
Y减小,但是CKZ- Y<5,CKZ不变;
Y继续减小,CKZ- Y>5,则设现在的YCKZ
Y继续减小,Y <REF(Y,1),则设现在的YCKZ
若此后Y增大,但是Y - CKZ<5,CKZ不变;
Y继续增大,Y-CKZ>5,则设现在的YCKZ
Y继续增大,Y>REF(Y,1),则设现在的YCKZ;以此循环

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-24 09:02 | 显示全部楼层
y,m,ckz 都没有明确的定义 这样是不行的。

而且你后面“关于CKZ(参考值)的取值问题”这部分描述,逻辑并不合理,清晰,建议重新整理下文字描述。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

4

帖子

4

积分

Rank: 1

等级: 新手上路

注册:
2023-4-23
曾用名:
 楼主| 发表于 2023-4-24 09:37 | 显示全部楼层
Y值是根据常用指标计算出来的值,直接引用就行了。m是个常数值,可根据需要设定.我主要是开平仓的语句不会编写,尤其是给这个开平仓条件设置一个限定条件时。第二个问题怎么表达我再想想。请帮忙把第一个编写一下。
回复

使用道具 举报

1

主题

4

帖子

4

积分

Rank: 1

等级: 新手上路

注册:
2023-4-23
曾用名:
 楼主| 发表于 2023-4-24 09:44 | 显示全部楼层
技术009 发表于 2023-4-24 09:02
y,m,ckz 都没有明确的定义 这样是不行的。

而且你后面“关于CKZ(参考值)的取值问题”这部分描述,逻辑 ...

请老师看看。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-24 10:45 | 显示全部楼层
VARIABLE:at:=0;//全局变量at是用来记录 加仓次数的
ycon:Y>-m and y<m;

kk:ycon and cross(d,j);
kd:ycon and cross(j,d);

if kd then
begin
sellshort(1,holding,market);
if holding=0 then at:=0;
buy(holding=0,20%,market);        
end

if kk then
begin
sell(1,holding,market);
if holding=0 then at:=0;
buyshort(holding=0,20%,market);        
end

if  y<-m and holding>0 then
begin
sell(1,holding,market);
if holding=0 then at:=0;
buyshort(holding=0,20%,market);
end

if  y>m and holding<0 then
begin
sellshort(1,holding,market);
if holding=0 then at:=0;
buy(holding=0,20%,market);
end


if cross(J,D) and y>m and holding>0 and at<3 then  
begin
at:=at+1;
ss:=if(at<=1,20,10);
多加仓:buy(1,at%,market);
end

if cross(d,j) and y<-m and holding<0 and at<3 then
begin
at:=at+1;        
ss:=if(at<=1,20,10);
空加仓:buyshort(1,at%,market);
end


前面那部分大体结构是这样的。实际最终落实到能运行程度肯定还是需要进行一些微调的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

4

帖子

4

积分

Rank: 1

等级: 新手上路

注册:
2023-4-23
曾用名:
 楼主| 发表于 2023-4-24 11:11 | 显示全部楼层
技术009 发表于 2023-4-24 10:45
VARIABLE:at:=0;//全局变量at是用来记录 加仓次数的
ycon:Y>-m and ym and holdingm and holding>0 and at

非常感谢,我试试看。有问题再请教您!
回复

使用道具 举报

12

主题

56

帖子

56

积分

等级: 免费版

注册:
2024-4-26
曾用名:
发表于 2024-5-29 14:37 | 显示全部楼层
学习了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-28 03:05 , Processed in 0.187015 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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