金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1688|回复: 1

老师,帮我新增几句话

[复制链接]

15

主题

36

帖子

46

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2023-6-27 15:37 | 显示全部楼层 |阅读模式
老师您好。
下面的代码是只开多的,您根据【反之】帮我增加一个 只开空的,变成多空都有就行了。



input:dif(5,1,1000,1);//dif为网格间隔参数,单位是最小变动价位;按照此间隔来划分价格区间(也可以按照指定的网格数量来划分价格区间)
input:ss(1,1,1000,1);//ss是手数参数
variable:level:=-1;//全局变量用来记录最近一次 买和卖 时候的价位所在的档位。


//确定网格价格边界。可自行定义价格区间的计算逻辑,但是务必要在价格区间发生变化的时候 进行仓位处理或者全局变量的重置。
h1:=callstock('',vthigh,6,-1);
l1:=callstock('',vtlow,6,-1);

//以昨日最高最低价为基准,上下轨数值调整为 dif整数倍
up:(floor(h1/(dif*mindiff))+1)*(dif*mindiff);//上轨
down:(floor(l1/(dif*mindiff)))*(dif*mindiff);//下轨

//划分出来总的层数
r:(up-down)/(dif*MINDIFF),NODRAW;

if todaybar=1 then //开盘初始化一次
begin
level:=-1;
end

n:floor((up-c)/(dif*mindiff)),nodraw;//当前价格在上轨下 n个dif 之下位置
if level=-1 then level:=max(0,n);


买:=level<n and level>0 and n<r;
卖:=holding>0 and level>0 and n<level;

sl:level;
if 卖 then
begin
sell(1,holding,marketr);//平多
level:=n;
end


if 买 then
begin
buy(1,ss,marketr);//开多
level:=n;
end


if time=closetime(0) then
begin
收盘平仓:sell(1,holding,market);
end




回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-27 15:42 | 显示全部楼层
这部分代码调整下即可
买:=level<n and level>0 and n<r;
卖:=level>0 and n<level;
if 卖 then
begin
sell(1,holding,marketr);//平多
buyshort(1,holding,marketr);//开空
level:=n;
end


if 买 then
begin
sellshort(1,ss,marketr);//平空
buy(1,ss,marketr);//开多
level:=n;
end


if time=closetime(0) then
begin
收盘平空:sellshort(1,holding,market);
收盘平仓:sell(1,holding,market);
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-15 22:50 , Processed in 0.100722 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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