金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖
楼主: 随心而飘

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

[复制链接]

28

主题

100

帖子

100

积分

等级: 免费版

注册:
2025-1-2
曾用名:
 楼主| 发表于 2025-3-4 11:08 | 显示全部楼层
我即将使用金字塔软件专业版,麻烦老师按后台程序化交易重新编写我的交易思路,  不开仓买入股票  ,  只按持仓量进行止盈止损





回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-3-4 13:30 | 显示全部楼层
你的代码逻辑上有一些没有处理的情况。

1. 12 和34 是可能穿插发生的。先涨到第一次止盈减半仓位置,然后又跌到第一次止损减半仓位置。这种情况 还继续按照半仓处理(相当于初始仓位的25%了)?

2.你的基准价是隔一天变一次,还是取持仓仓位时候的前一天的收盘价。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

100

帖子

100

积分

等级: 免费版

注册:
2025-1-2
曾用名:
 楼主| 发表于 2025-3-4 13:47 | 显示全部楼层
老师,

我的思路是只交易持仓量的止盈止损

只取持仓仓位时候的前一天的收盘价,基准价不改变

止损条件改为一次,跌幅超过8%,全部平仓,这样可以避免您说的减仓25%的情况了。




回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-3-4 14:20 | 显示全部楼层
1.建议在模拟上先测试下程序逻辑
2.后台程序化的操作不同于图表程序化,建议先看下帮助说明:https://www.weistock.com/docs/HE ... BA%8F%E5%8C%96.html

3.你这种半自动的,除了初始开仓之外最好不要有其他的手工干预。否则程序是无法知晓你手工操作了什么的。

[PEL] 复制代码

if not(TACCOUNT(53)) then exit;//账户没登陆直接退出

inital_str:stklabel&'_lots';//记录初始持仓数量的全局变量字符串变量
base_str:stklabel&'_lots';//记录初始基准价的全局变量字符串变量


全部持仓:tbuyholdingex('','',2);
可用:tbuyholdingex('','',1); 


initial_lots:=extgbdata(inital_str);//读值
if tbuyholdingex('','',2)<>0 and initial_lots=0 and tglobalsubmitex(0,'','',0)=0 then
begin
  extgbdataset(inital_str,全部持仓);         // 记录初始买入量
  extgbdataset(base_str,callstock('',vtclose,6,-1));//记录基准价
end
 
 if tbuyholdingex('','',2)=0 and initial_lots<>0 then
begin
  extgbdataset(inital_str,0);    
  extgbdataset(base_str,0);
end
 

initial_lots:=extgbdata(inital_str);//初始持仓量
基准价:=extgbdata(base_str);//基准价格


涨幅:=(close / 基准价 - 1);//基于基准价的涨幅
跌幅:=(1 - close / 基准价);
 


if time>=093500 and time<=145500 then
begin
// 卖出条件1:价格上涨8%,卖出一半持仓,仅执行一次

if 可用 > 0 and 涨幅>= 0.08 and 涨幅<0.2 and 基准价>0 and 可用 = initial_lots then
begin
tsell(1, initial_lots / 2, mkt);
end
  
// 卖出条件2:价格上涨20%以上,卖出全部持仓
if 可用> 0 and 涨幅>= 0.2 then
begin
tsell(1,0, mkt);
extgbdataset(inital_str,0);// 清空初始持仓量    
extgbdataset(base_str,0);                
end
  
// 卖出条件3:价格下跌8%,卖出全部持仓
if 可用> 0 and 跌幅>= 0.08 then
begin
tsell(1, 0, mkt);
extgbdataset(inital_str,0);
extgbdataset(base_str,0);
end
 
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

100

帖子

100

积分

等级: 免费版

注册:
2025-1-2
曾用名:
 楼主| 发表于 2025-3-4 14:34 | 显示全部楼层
谢谢老师指教
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 17:42 , Processed in 0.126586 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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