金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2465|回复: 5

止盈指标为什么都是在开仓后的第二根K线就止盈了,是哪里判断的不对吗?请老师帮忙...

[复制链接]

75

主题

191

帖子

191

积分

等级: 免费版

注册:
2023-4-11
曾用名:
发表于 2023-4-18 09:51 | 显示全部楼层 |阅读模式
请问老师,如下止盈指标为什么都是在开仓后的第二根K线就止盈了,是哪里判断的不对吗?请老师帮忙修正一下,谢谢!


//多单止盈模块******************************************************************************
//判断当前持仓状态下的最大盈利
DKwin:=0;
DKwin2:=0;
if holding > 0 and enterbars > 0 then
begin
  DKwin:=(c-enterprice)/enterprice*100; //记录最大盈利
  if DKwin>maxprofit then
    maxprofit:=DKwin;

  DKwin2:=(maxprofit-DKwin)/maxprofit*100; //最大盈利后的回调幅度
end


//出现最高盈利后,回落到盈利的60%平仓出场
多单止赢:SELL(DKwin2 >= 6*MINDIFF and openprofit > 0, 0,limit,c);

//空单止盈模块******************************************************************************
//判断当前持仓状态下的最大盈利
KKwin:=0;
KKwin2:=0;
if holding < 0 and enterbars > 0 then
begin
  KKwin:=(enterprice-C)/enterprice*100; //记录最大盈利
  if KKwin>maxprofit then
    maxprofit:=KKwin;

  KKwin2:=(maxprofit-KKwin)/maxprofit*100; //最大盈利后的回调幅度
end


//出现最高盈利后,回落到盈利的60%平仓出场
空单止赢:SELLSHORT(KKwin2 >= 6*MINDIFF and openprofit > 0, 0,limit,c);

回复

使用道具 举报

75

主题

191

帖子

191

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2023-4-18 09:52 | 显示全部楼层
>= 6*MINDIFF  这里用变动价位还是用60百分比,都是第二根K线就给平仓了。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-18 10:00 | 显示全部楼层
KKwin2:=(maxprofit-KKwin)/maxprofit*100; //最大盈利后的回调幅度

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

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-4-18 10:11 | 显示全部楼层
本帖最后由 技术006 于 2023-4-18 10:14 编辑

6*MINDIFF 这是大于6个变动价位,例如某品种的变动价位是5,那么它最终就是>=30元。但是你代码中是拿它和幅度DKwin2比较。如果价格小于100以内,那么这里30可以理解为幅度(数字层面上)。大于100则横不成立。

你上面的代码部分无法进行调试,你可以在对应的k线上,直接输出参与止盈止损的因子值的结果。手工根据各个值代入计算,逐级向上反推就行。例如:

DKwin:=0;
DKwin2:=0;
if holding > 0 and enterbars > 0 then
begin
  DKwin:=(c-enterprice)/enterprice*100; //记录最大盈利
  if DKwin>maxprofit then
    maxprofit:=DKwin;

  DKwin2:=(maxprofit-DKwin)/maxprofit*100; //最大盈利后的回调幅度
end

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

使用道具 举报

75

主题

191

帖子

191

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2023-4-19 22:25 | 显示全部楼层
技术006 发表于 2023-4-18 10:11
6*MINDIFF 这是大于6个变动价位,例如某品种的变动价位是5,那么它最终就是>=30元。但是你代码中是拿它和幅 ...

老师能否对如下代码解析一下,我调整半天还是在开仓后第二根K线就平仓了,请老师查看下。
variable:maxprofit1=0;//有仓位时最大获利幅度,请问这里的全局变量是否需要多空区分?=0又代表什么意思?
variable:maxprofit2=0;//有仓位时最大获利幅度,请问这里的全局变量是否需要多空区分?=0又代表什么意思?


//多单止盈模块******************************************************************************
//判断当前持仓状态下的最大盈利
DKwin:=0;
DKwin2:=0;
if holding > 0 and enterbars > 0 then
begin
  DKwin:=(c-enterprice)/enterprice*100; //记录最大盈利
  if DKwin>maxprofit1 then
    maxprofit1:=DKwin;

  DKwin2:=(maxprofit1-DKwin)/maxprofit1*100; //最大盈利后的回调幅度,这里对回调幅度的计算我用数值代入还是觉得不对?是以百分比的回调比例吗?例如5000开多单,最高盈利价格到5050,回调盈利的60%应该是50*60%,回调触发平仓位应该是(5050-5000)*60%+5000=5030价格位,但是事实是在这之前开仓后的第二根就平仓了
end


//出现最高盈利后,回落到盈利的60%平仓出场
多单止赢:SELL(DKwin2 >= 60 and openprofit > 0, 0,limit,c);


//**********************************************************************************************************************************
//**********************************************************************************************************************************



//空单止盈模块******************************************************************************
//判断当前持仓状态下的最大盈利
KKwin:=0;
KKwin2:=0;
if holding < 0 and enterbars > 0 then
begin
  KKwin:=(enterprice-C)/enterprice*100; //记录最大盈利
  if KKwin>maxprofit2 then
    maxprofit2:=KKwin;

  KKwin2:=(maxprofit2-KKwin)/maxprofit2*100; //最大盈利后的回调幅度,这里对回调幅度的计算我用数值代入还是觉得不对?是以百分比的回调比例吗?例如5050开空单,最高盈利价格到5000,回调盈利的60%应该是50*60%,回调触发平仓位应该是5050-(5050-5000)*60%=5020价格位,但是事实是在这之前开仓后的第二根就平仓了
end


//出现最高盈利后,回落到盈利的60%平仓出场
空单止赢:SELLSHORT(KKwin2 >= 60 and openprofit > 0, 0,limit,c);


还请老师帮检查问题在哪里?是不是LIMIT限价造成的?
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-4-20 08:16 | 显示全部楼层
汇聚 发表于 2023-4-19 22:25
老师能否对如下代码解析一下,我调整半天还是在开仓后第二根K线就平仓了,请老师查看下。
variable:maxp ...

红色处解释:
1.图表没有同时持有双向的情况,所以可以不区分。当然也可以区分,就像这部分代码。
等于0,代表是初始值。

2.是你这么理解的,但是你的代码时按照幅度比例处理的。即直接记录最大的获利幅度。然后再获利幅度的基础上,进行下跌处理。逻辑上没有问题。建议你提供完整可以调试代码。并告知相关品种和周期,便于我们针对现象去分析。或者你在止盈代码部分,增加输出,自己在图表上可以看它每根个变量的因子结果。从而定位具体问题。方法在前面已经介绍到了。

毕竟存在需求描述和编写者理解存在差异的情况。这种必要的分析调试技能是必须掌握的。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 12:57 , Processed in 0.172527 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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