金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索

各位大神可以帮我编写自动交易程序吗。谢谢

[复制链接]

21

主题

54

帖子

54

积分

等级: 免费版

注册:
2024-6-4
曾用名:
 楼主| 发表于 2024-6-6 20:23 来自手机 | 显示全部楼层
就是这个意思
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-7 09:17 | 显示全部楼层
本帖最后由 技术006 于 2024-6-7 13:17 编辑

以下是多头部分的实现方式,采用全局变量进行记录。你可以参考学习。

[PEL] 复制代码
//1、当K线整体上穿5日均线就自动买入3手多单。//2、当K线整体下穿5日均线就自动买入3手空单。
//3、多单或者空单当浮动价格每盈利2个点,系统就自动买入1手。
//4、或当浮动价格每亏损2个点系统就自动卖出1手。
//5、直到亏损6个点止损,或者盈利6个点止盈。

VARIABLE:BASE_PRICE=0,GRID_NUM=0,WIN_PRICE=0,STOP_PRICE=0;
ma5:MA(LOW,5);

IF cross(low,MA5)=1 and  holding=0 THEN BEGIN
	BUY(1,3,LIMITR,close);
	BASE_PRICE:=close;
	//记录当前开多时的止损价格
    STOP_PRICE:=BASE_PRICE-6*MINDIFF;
    WIN_PRICE:=BASE_PRICE+6*MINDIFF;
END



//当前最新价与止损价之间的价格差
OFFSET:CLOSE-BASE_PRICE;

//相对于基准的格子数
BASE_GRID:INTPART(OFFSET/(2*MINDIFF));


IF HOLDING>0 AND BASE_GRID-GRID_NUM>=1  and BASE_GRID<3 and BASE_GRID>0 THEN BEGIN
        BUY(1,BASE_GRID-GRID_NUM,MARKETR);
        GRID_NUM:=BASE_GRID;
END


IF HOLDING>0 AND BASE_GRID-GRID_NUM<=-1  and BASE_GRID>-3  and BASE_GRID<0 THEN BEGIN
        sell(1,abs(BASE_GRID-GRID_NUM),MARKETR);
        GRID_NUM:=BASE_GRID;
        if HOLDING=0 then BEGIN
        	BASE_PRICE:=0;
			GRID_NUM:=0;
			STOP_PRICE:=0;
			WIN_PRICE:=0;
        end
END


//止盈止损
IF close>WIN_PRICE and  HOLDING>0 then BEGIN
	sell(1,HOLDING,MARKETR);
	BASE_PRICE:=0;
	GRID_NUM:=0;
	STOP_PRICE:=0;
	WIN_PRICE:=0;
	
end

IF close<STOP_PRICE and  HOLDING>0 then BEGIN
	sell(1,HOLDING,MARKETR);
	BASE_PRICE:=0;
	GRID_NUM:=0;
	STOP_PRICE:=0;
	WIN_PRICE:=0;
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

54

帖子

54

积分

等级: 免费版

注册:
2024-6-4
曾用名:
 楼主| 发表于 2024-6-7 13:07 来自手机 | 显示全部楼层
技术006 发表于 2024-6-6 11:04
那不就是以首次开仓价为基准,每上涨2个价位就加仓,反之减仓吗?

就是这个意思。
回复

使用道具 举报

21

主题

54

帖子

54

积分

等级: 免费版

注册:
2024-6-4
曾用名:
 楼主| 发表于 2024-6-7 13:10 来自手机 | 显示全部楼层
技术006 发表于 2024-6-7 09:17
以下是多头部分的实现方式,采用全局变量进行记录。你可以参考学习。

[mw_shl_code=pel,true]//1、当K线 ...

非常感谢老师,您真有耐心。
回复

使用道具 举报

21

主题

54

帖子

54

积分

等级: 免费版

注册:
2024-6-4
曾用名:
 楼主| 发表于 2024-6-7 14:07 来自手机 | 显示全部楼层
1,当每次开盘10分钟系统自动买入3手多单
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-7 14:10 | 显示全部楼层
自己根据当前运行的周期执行k线实现。这语句话,可以直接参考这个修改。把它换成todaybar=第几根k。比如在1分钟上,todaybar=10,5分钟上todaybar=2

IF cross(low,MA5)=1 and  holding=0 THEN BEGIN
    BUY(1,3,LIMITR,close);
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

54

帖子

54

积分

等级: 免费版

注册:
2024-6-4
曾用名:
 楼主| 发表于 2024-6-7 14:12 来自手机 | 显示全部楼层
没走完的棋局 发表于 2024-6-7 14:07
1,当每次开盘10分钟系统自动买入3手多单

对不起,我发错了!
回复

使用道具 举报

21

主题

54

帖子

54

积分

等级: 免费版

注册:
2024-6-4
曾用名:
 楼主| 发表于 2024-6-10 14:47 | 显示全部楼层
技术006 发表于 2024-6-7 09:17
以下是多头部分的实现方式,采用全局变量进行记录。你可以参考学习。

[mw_shl_code=pel,true]//1、当K线 ...

谢谢老师,想再次麻烦你能将这个代码改成空头部分的实现方法,其他所有条件不变。谢谢
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-11 08:28 | 显示全部楼层
空头部分建议你学习完成多头部分自行实现。实现的过程中遇到具体问题我们可以协助处理。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

54

帖子

54

积分

等级: 免费版

注册:
2024-6-4
曾用名:
 楼主| 发表于 2024-6-11 14:34 来自手机 | 显示全部楼层
VARIABLE:BASE_PRICE=0,GRID_NUM=0,WIN_PRICE=0,STOP_PRICE=0; ma5:MA(LOW,5);  IF cross(MA5,low)=1 and  holding=0 THEN BEGIN     SELLSHORT(1,3,LIMITR,close);  //改为卖出空头     BASE_PRICE:=close;     //记录当前开空时的止损价格     STOP_PRICE:=BASE_PRICE+6*MINDIFF;  //方向改变,止损价格计算也改变     WIN_PRICE:=BASE_PRICE-6*MINDIFF;  //方向改变,止盈价格计算也改变 END  //当前最新价与止损价之间的价格差 OFFSET:CLOSE-BASE_PRICE;  //相对于基准的格子数 BASE_GRID:INTPART(OFFSET/(2*MINDIFF));  IF HOLDING<0 AND BASE_GRID-GRID_NUM>=1  and BASE_GRID<3 and BASE_GRID>0 THEN BEGIN         SELLSHORT(1,BASE_GRID-GRID_NUM,MARKETR);  //卖出空头操作         GRID_NUM:=BASE_GRID; END  IF HOLDING<0 AND BASE_GRID-GRID_NUM<=-1  and BASE_GRID>-3  and BASE_GRID<0 THEN BEGIN         BUYCOVER(1,abs(BASE_GRID-GRID_NUM),MARKETR);  //改为买入平仓         GRID_NUM:=BASE_GRID;         if HOLDING=0 then BEGIN             BASE_PRICE:=0;             GRID_NUM:=0;             STOP_PRICE:=0;             WIN_PRICE:=0;         end END  //止盈止损 IF close<WIN_PRICE and  HOLDING<0 then BEGIN     BUYCOVER(1,HOLDING,MARKETR);     BASE_PRICE:=0;     GRID_NUM
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-27 20:23 , Processed in 0.125924 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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