金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 6715|回复: 24

加仓怎么写

[复制链接]

8

主题

45

帖子

45

积分

Rank: 1

等级: 新手上路

注册:
2023-2-26
曾用名:
发表于 2023-3-3 23:24 | 显示全部楼层 |阅读模式
当我开了多单后,价格在我的开仓价下跌50点加一次仓,一共加仓10次;记录每一次加仓的价格,当价格大于上一次加仓价格50点平一次仓,类似于网格加仓平仓

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-6 09:20 | 显示全部楼层
[PEL] 复制代码
VARIABLE:num:=0;

ma5:ma(c,5);
ma10:ma(c,10);

kd:cross(ma5,ma10);
pd:cross(ma10,ma5);


buy(kd and holding=0,1,marketr);

//平仓时候重置全局变量
if pd and holding>0 then 
begin
sell(1,holding,marketr);
num:=0;	 
end 

if ENTERPRICE-c>=50*MINDIFF and num<9 and holding>0 then 
begin 
加仓:buy(1,1,marketr);
num:=num+1;	
end 


以上范例仅供参考,客户可结合范例思路来修正自己实际使用的交易代码
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

8

主题

45

帖子

45

积分

Rank: 1

等级: 新手上路

注册:
2023-2-26
曾用名:
 楼主| 发表于 2023-3-9 23:11 | 显示全部楼层
您好,

需要记录每一次的开仓价和平仓价?
回复

使用道具 举报

8

主题

45

帖子

45

积分

Rank: 1

等级: 新手上路

注册:
2023-2-26
曾用名:
 楼主| 发表于 2023-3-9 23:28 | 显示全部楼层
这是我写的,就是感觉怪怪的,不知道哪里不对,老师帮忙指出一下

ctj:=CROSS(lowbb,close);

if kctj and holding=0 then begin
        buy (1,1,THISCLOSE);
        num:=1;
        kcj:=ENTERPRICE;
END

aas:num;

numh:hhv(aas,0);
pcw:=kcj+100*MINDIFF;
pctj:=close>=pcw;
if pctj and HOLDING>0 and num>0 and ENTERBARS>=2  then begin
        sell(1,1,LIMIT,pcw);
        num:=num-1;
        kcj:=kcj+100;
END

as:kcj;
jcw:=kcj-100*MINDIFF;
jctj:=close<=jcw;

if jctj and num<9 and holding>=1 and ENTERBARS>=2   then begin
        K1:buy (1,1,LIMIT,jcw);
        num:=num+1;
        kcj:=ENTERPRICE;
       
END
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-10 09:10 | 显示全部楼层
范例里是始终追溯最近一次开仓时候的价格的。


你的思路不对的,不说要记录每次下单价格,模型再历史位置都有记录的,需要是怎么去回溯获取特定位置的值。  另外你这个思路也根本不需要管最近一次之外的价格了吧。  

你先看下我提供的范例。我那个是全局变量标记了  加仓次数的。

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

使用道具 举报

8

主题

45

帖子

45

积分

Rank: 1

等级: 新手上路

注册:
2023-2-26
曾用名:
 楼主| 发表于 2023-3-10 22:44 | 显示全部楼层
老师,你好, 我是这样想的,每次下跌100个点,我就加一次仓,加仓后价格上涨100点就平仓。就是用一个网格做交易
回复

使用道具 举报

8

主题

45

帖子

45

积分

Rank: 1

等级: 新手上路

注册:
2023-2-26
曾用名:
 楼主| 发表于 2023-3-10 22:49 | 显示全部楼层
老师你的代码我看了的,我也用到表了,但是看着好像和我想的不一样呢
就是说,当我在6000开仓,下跌到5900加仓一次,到5800加仓1次,5700加仓一次,5600加仓一次........一共加10次,当价格上涨100个点就平一次仓。也就是说,除了第一次开仓的价格,其它价格就是100个点开仓和平仓
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-3-13 12:02 | 显示全部楼层
大致处理结构如下所示,由于每次价差都是基于第一次开仓时的开仓价差,那么价差范围相对是固定的。因此N倍价差就代表当前应该处于的档位
[PEL] 复制代码
VARIABLE:num:=0,oneprice=-1;

//跳动价位
diff:=50;

ma5:ma(c,5);
ma10:ma(c,10);

kd:cross(ma5,ma10);
pd:cross(ma10,ma5);
 
//首次开仓时记录开仓时是的价格
if kd and holding=0 then begin
	buy(kd and holding=0,1,marketr);
	oneprice:=ENTERPRICE;
	num:=1;//开启加仓模式
end

//加仓处理
if oneprice-c>diff*num*MINDIFF and num>0 and num<11 and  holding>0 THEN
	加仓:buy(1,1,marketr);
	num:=num+1;
end

//减仓处理
if oneprice-c<diff*num*MINDIFF and oneprice-c>diff*(num-1)*MINDIFF and  num>1 and holding>0 THEN
begin
	sell(1,holding,marketr);
	num:=num-1; 
end

if pd=1 and  num=1 and holding>0 THEN
begin
	sell(1,holding,marketr);
	num:=0; 
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

8

主题

45

帖子

45

积分

Rank: 1

等级: 新手上路

注册:
2023-2-26
曾用名:
 楼主| 发表于 2024-5-29 10:05 | 显示全部楼层
//减仓处理
if oneprice-c<diff*num*MINDIFF and oneprice-c>diff*(num-1)*MINDIFF and  num>1 and holding>0 THEN
begin
    sell(1,holding,marketr);
    num:=num-1;

老师,这段减仓的好像不对,怎么改呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-5-29 10:18 | 显示全部楼层
直接用2楼代码呢
enterprice就是上次开仓价格了,不需要自己记录
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-27 18:23 , Processed in 0.075327 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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