金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 859|回复: 14

分批次止损止盈-股票(请老师用均线金叉编写代码)

[复制链接]

28

主题

100

帖子

100

积分

等级: 免费版

注册:
2025-1-2
曾用名:
发表于 2025-3-4 09:03 | 显示全部楼层 |阅读模式

       5日均线上穿10日均线买入8手股票

[size=14.6667px]1如果当前价格(收盘价)[size=14.6667px]比买入价上涨5%,则卖出前次买入的二分之一[size=14.6667px]票
[size=14.6667px]2如果当前价格(收盘价)[size=14.6667px]比买入价上涨15%以上,则卖出所有前次买入[size=14.6667px]票;
3如果当前价格(收盘价)[size=14.6667px]比
买入价下跌7%,则卖出二分之一前次买入[size=14.6667px]票;
4如果当前价格(收盘价)[size=14.6667px]比买入价下跌10%,则卖出所有前次买入[size=14.6667px]票





回复

使用道具 举报

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
发表于 2025-3-4 09:05 | 显示全部楼层
您的策略正在编写,请稍等
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

100

帖子

100

积分

等级: 免费版

注册:
2025-1-2
曾用名:
 楼主| 发表于 2025-3-4 09:06 | 显示全部楼层
1如果当前价格(收盘价)比买入价上涨5%,则卖出前次买入的二分之一股票
2如果当前价格(收盘价)比买入价上涨15%以上,则卖出所有前次买入股票;
3如果当前价格(收盘价)比买入价下跌7%,则卖出二分之一前次买入的股票;
4如果当前价格(收盘价)比买入价下跌10%,则卖出所有前次买入的股票。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-3-4 09:36 | 显示全部楼层
[PEL] 复制代码
INPUT:SS(800,100,10000,100);
MA5: MA(CLOSE, 5);    // 5日均线
MA10: MA(CLOSE, 10);  // 10日均线



// 定义全局变量:记录初始持仓量和当前持仓状态
VARIABLE: initial_lots := 0; // 记录初始买入的手数,初始为0
VARIABLE: current_lots := 0; // 记录当前剩余持仓的手数,初始为0
VARIABLE: half_sold := 0;    // 标记是否已卖出一半持仓,0表示未卖出,1表示已卖出

// 买入条件:MA5上穿MA10时,买入8手股票
if CROSS(MA5, MA10) and HOLDING = 0 then 
begin
  BUY(1, ss, MARKET);         // 以市价买入8手
  initial_lots := ENTERVOL;         // 记录初始买入量为8手
  current_lots := ENTERVOL;         // 当前持仓量初始化为8手
  half_sold := 0;            // 重置卖出一半的标记为未卖出
end


可用:HOLDING-DAYHOLDING;
// 卖出条件1:价格上涨5%,卖出一半持仓(4手),仅执行一次
if 可用 > 0 and (CLOSE / ENTERPRICE - 1) >= 0.05 and half_sold = 0 and current_lots = initial_lots then
begin
  止盈1:SELL(1, initial_lots / 2, MARKET);  // 卖出初始买入量的一半(4手)
  current_lots := current_lots / 2;   // 更新当前持仓量为4手
  half_sold := 1;                     // 标记已卖出一半持仓,避免重复触发
end

// 卖出条件2:价格上涨15%以上,卖出全部持仓
if 可用 > 0 and (CLOSE / ENTERPRICE - 1) >= 0.15 then
begin
  止盈2:SELL(1, HOLDING, MARKET);           // 卖出全部持仓
  initial_lots := 0;                  // 清空初始持仓量
  current_lots := 0;                  // 清空当前持仓量
  half_sold := 0;                     // 重置卖出一半的标记
end

// 卖出条件3:价格下跌7%,卖出一半持仓(4手),仅执行一次
if 可用 > 0 and (1 - CLOSE / ENTERPRICE) >= 0.07 and half_sold = 0 and current_lots = initial_lots then
begin
  止损1:SELL(1, initial_lots / 2, MARKET);  // 卖出初始买入量的一半(4手)
  current_lots := current_lots / 2;   // 更新当前持仓量为4手
  half_sold := 1;                     // 标记已卖出一半持仓,避免重复触发
end

// 卖出条件4:价格下跌10%,卖出全部持仓
if 可用 > 0 and (1 - CLOSE / ENTERPRICE) >= 0.10 then
begin
  止损2:SELL(1, HOLDING, MARKET);           // 卖出全部持仓
  initial_lots := 0;                  // 清空初始持仓量
  current_lots := 0;                  // 清空当前持仓量
  half_sold := 0;                     // 重置卖出一半的标记
end

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

使用道具 举报

28

主题

100

帖子

100

积分

等级: 免费版

注册:
2025-1-2
曾用名:
 楼主| 发表于 2025-3-4 10:19 | 显示全部楼层
谢谢老师,再求助老师编一个代码

持有600900股票8000股,起始基准价为昨收盘价
票 交易时间为9:35-14:55


1如果当前价格(收盘价)比起始基准价上涨8%,则卖出二分之一持仓;
2如果当前价格(收盘价)比起始基准价上涨20%以上,则卖出所有持仓
3如果当前价格(收盘价)低于起始基准价5%,则卖出二分之一持仓;
4如果当前价格(收盘价)低于起始基准价9.5%,则卖出所有持仓。












如果收盘价上穿BBI且K线大于D线,则执行买入操作,买入500股,买入价不得高于昨收盘价的1.07
如果BBI下穿收盘价且K线小于D线,则执行卖出操作,卖出前买入的603501韦尔股份500股


回复

使用道具 举报

28

主题

100

帖子

100

积分

等级: 免费版

注册:
2025-1-2
曾用名:
 楼主| 发表于 2025-3-4 10:21 | 显示全部楼层
老师,不好意思!下面的二行条件发错!取消,只要上面4行条件
回复

使用道具 举报

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
发表于 2025-3-4 10:33 | 显示全部楼层
[PEL] 复制代码
INPUT:SS(8000,100,10000,100);
MA5: MA(CLOSE, 5);    // 5日均线
MA10: MA(CLOSE, 10);  // 10日均线
 
 
 
// 定义全局变量:记录初始持仓量和当前持仓状态
VARIABLE: initial_lots := 0; // 记录初始买入的手数,初始为0
VARIABLE: current_lots := 0; // 记录当前剩余持仓的手数,初始为0
VARIABLE: half_sold := 0;    // 标记是否已卖出一半持仓,0表示未卖出,1表示已卖出

基准价:=CALLSTOCK('',VTCLOSE,6,-1);//基准价
 
// 买入条件:MA5上穿MA10时,买入8手股票
if CROSS(MA5, MA10) and HOLDING = 0 then
begin
  BUY(1, ss, MARKET);         // 以市价买入8手
  initial_lots := ENTERVOL;         // 记录初始买入量为8手
  current_lots := ENTERVOL;         // 当前持仓量初始化为8手
  half_sold := 0;            // 重置卖出一半的标记为未卖出
end
 
 
可用:HOLDING-DAYHOLDING;

if time>=093500 and time<=145500 THEN
begin
// 卖出条件1:价格上涨5%,卖出一半持仓(4手),仅执行一次
if 可用 > 0 and (CLOSE / 基准价 - 1) >= 0.08 and half_sold = 0 and current_lots = initial_lots then
begin
  止盈1:SELL(1, initial_lots / 2, MARKET);  // 卖出初始买入量的一半(4手)
  current_lots := current_lots / 2;   // 更新当前持仓量为4手
  half_sold := 1;                     // 标记已卖出一半持仓,避免重复触发
end
 
// 卖出条件2:价格上涨15%以上,卖出全部持仓
if 可用 > 0 and (CLOSE / 基准价 - 1) >= 0.2 then
begin
  止盈2:SELL(1, HOLDING, MARKET);           // 卖出全部持仓
  initial_lots := 0;                  // 清空初始持仓量
  current_lots := 0;                  // 清空当前持仓量
  half_sold := 0;                     // 重置卖出一半的标记
end
 
// 卖出条件3:价格下跌7%,卖出一半持仓(4手),仅执行一次
if 可用 > 0 and (1 - CLOSE / 基准价) >= 0.05 and half_sold = 0 and current_lots = initial_lots then
begin
  止损1:SELL(1, initial_lots / 2, MARKET);  // 卖出初始买入量的一半(4手)
  current_lots := current_lots / 2;   // 更新当前持仓量为4手
  half_sold := 1;                     // 标记已卖出一半持仓,避免重复触发
end
 
// 卖出条件4:价格下跌10%,卖出全部持仓
if 可用 > 0 and (1 - CLOSE / 基准价) >= 0.095 then
begin
  止损2:SELL(1, HOLDING, MARKET);           // 卖出全部持仓
  initial_lots := 0;                  // 清空初始持仓量
  current_lots := 0;                  // 清空当前持仓量
  half_sold := 0;                     // 重置卖出一半的标记
end

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

使用道具 举报

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
发表于 2025-3-4 10:36 | 显示全部楼层
稍微改一下,就可以了。开仓部分代码还是用原来的。‘注释部分,也是沿用原来的,没有专门修改。

更改部分为:(1)加入时间限制
                    (2)基准价,由原来的开仓价,变为昨收。您看看
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

100

帖子

100

积分

等级: 免费版

注册:
2025-1-2
曾用名:
 楼主| 发表于 2025-3-4 10:50 | 显示全部楼层
谢谢老师!
我的思路是利用原有持仓做止盈止损,不设买入条件。
根据您的编写
我只要把买入条件取消就行了吧!
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-3-4 10:54 | 显示全部楼层
不行。

图表程序化做不到这种半自动,你删除了开仓语句,平仓语句也会消失,平仓信号是基于理论持仓而不是实际持仓来出信号的。

你如果是自己手工买入 程序卖出,只能用后台程序化,前提是你有后台程序号使用权限。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-29 11:34 , Processed in 0.081753 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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