基于置换均线的二次穿越突破均线

2023-11-15

1 名词解释

置换均线:移位移动平均线也称置换移动平均线。置换均线(DMA)不是将当根bar上计算的均线值画上当根bar上,而是将历史的均线值画在当根bar上,使均线值整体向未来偏移了指定数量的bar。将移动平均K线向后平移一定BAR数即为置换均线。

Displaced Moving Average(DMA)是一种移动平均线的变体,它在计算移动平均线的基础上,将结果向前或向后平移若干周期。例如,如果将20天的简单移动平均线向前平移5天,就得到了一个15天的DMA。

DMA的作用与移动平均线类似,主要用于判断价格趋势的变化。与传统的移动平均线相比,DMA更具有前瞻性,因为它将移动平均线的结果向前或向后平移了若干个周期,能够更快地反映价格的变化趋势。同时,DMA也可以结合其他技术指标一起使用,如DMA与价格的交叉点,可以作为买卖信号的参考。

分析意义:

  1. 帮助确定价格趋势:DMA指标的变化可以反映价格趋势的变化。当DMA线向上突破零轴时,可以认为市场处于上升趋势;当DMA线向下突破零轴时,可以认为市场处于下降趋势。

  2. 帮助确定买卖时机:DMA指标的变化也可以作为买卖信号的参考。当DMA线向上突破零轴时,可以视为买入信号;当DMA线向下突破零轴时,可以视为卖出信号。

计算过程:

  1. 选择移动平均线的周期N和平移的周期M,这两个参数根据不同的市场和交易策略而定。

  2. 计算N周期的移动平均线,即使用收盘价CLOSE计算N周期的简单移动平均线MA(CLOSE,N)。

  3. 将计算结果向前或向后平移M个周期,得到位移后的DMA,即DMA = MA(CLOSE,N)Shift(M)。

其中,MA(CLOSE,N)是标准的移动平均线计算公式,Shift(M)表示将计算结果向前或向后平移M个周期。例如,如果将20天的简单移动平均线向前平移5天,就得到了一个15天的DMA。

2 参数设定

Params

 
    Numeric AvgLength(5); //均线周期
    Numeric AvgDisplace(5); //置换均线向后平移Bar数
    Numeric ValidBars1(5); //开仓先决条件之一(收盘价上穿DMA均线)条件值保持有效的BAR数
    Numeric ValidBars2(5); //开仓先决条件之二(上穿后再下穿)条件值保持有效的BAR数
    Numeric ValidBars3(5); //开仓先决条件(上穿再下穿再上穿)条件值保持有效的BAR数
    Numeric TrailStopBars(5); //多少根BAR的最低价作为跟踪止损价
  • AvgLength(均线周期):用于计算移动平均线的周期长度,默认为5。

  • AvgDisplace(置换均线向后平移Bar数):向后平移移动平均线的周期数,得到置换均线,默认为5。

  • ValidBars1(开仓先决条件之一):用于判断开仓时的先决条件之一,即收盘价上穿DMA均线,条件值保持有效的BAR数,默认为5。

  • ValidBars2(开仓先决条件之二):用于判断开仓时的先决条件之二,即上穿后再下穿,条件值保持有效的BAR数,默认为5。

  • ValidBars3(开仓先决条件之三):用于判断开仓时的先决条件之三,即上穿再下穿再上穿,条件值保持有效的BAR数,默认为5。

  • TrailStopBars(跟踪止损的BAR数):用于设置跟踪止损的BAR数,即多少根BAR的最低价作为跟踪止损价,默认为5。

Vars

    Numeric ConCrossOver; //当前BAR是否上穿DMA
    Numeric ConCrossUnder; //当前BAR是否下穿DMA
    Numeric BarsLastCrsUndL; //多头最近一次下穿离现在的BAR数
    Numeric BarsFstCrsOvrL; //多头最近倒数第二次上穿离现在的BAR数
    Numeric BarsSecCrsOvrL; //多头最近的一次上穿离现在的BAR数
    Numeric BarsLastCrsOvrS; //空头最近一次上穿离现在的BAR数
    Numeric BarsFstCrsUndS; //空头最近倒数第二次下穿离现在的BAR数
    Numeric BarsSecCrsUndS; //空头最近的一次下穿离现在的BAR数
    Numeric ReversalPriceL; //多头趋势反向的平仓价格
    Numeric TrailStopPriceL; //多头跟踪止损的平仓价格
    Numeric ReversalPriceS; //空头趋势反向的平仓价格
    Numeric TrailStopPriceS; //开工跟踪止损的平仓价格
    NumericSeries MA1; //均线
    NumericSeries DMA1; //置换均线
    NumericSeries EntryFlagL; //多头开仓标志
    NumericSeries EntryPointL; //多头突破开仓的价格
    NumericSeries EntryCountL; //多头满足开仓先决条件的BAR计数
    NumericSeries EntryFlagS; //空头开仓标志
    NumericSeries EntryPointS; //空头突破开仓的价格
    NumericSeries EntryCountS; //空头满足开仓先决条件的BAR计数
  • ConCrossOver(当前BAR是否上穿DMA):用于记录当前的BAR是否上穿了DMA。

  • ConCrossUnder(当前BAR是否下穿DMA):用于记录当前的BAR是否下穿了DMA。

  • BarsLastCrsUndL(多头最近一次下穿离现在的BAR数):用于记录多头最近一次下穿DMA离当前BAR的数量。

  • BarsFstCrsOvrL(多头最近倒数第二次上穿离现在的BAR数):用于记录多头最近一次上穿DMA的倒数第二个BAR离当前BAR的数量。

  • BarsSecCrsOvrL(多头最近一次上穿离现在的BAR数):用于记录多头最近一次上穿DMA离当前BAR的数量。

  • BarsLastCrsOvrS(空头最近一次上穿离现在的BAR数):用于记录空头最近一次上穿DMA离当前BAR的数量。

  • BarsFstCrsUndS(空头最近倒数第二次下穿离现在的BAR数):用于记录空头最近一次下穿DMA的倒数第二个BAR离当前BAR的数量。

  • BarsSecCrsUndS(空头最近一次下穿离现在的BAR数):用于记录空头最近一次下穿DMA离当前BAR的数量。

  • ReversalPriceL(多头趋势反向的平仓价格):用于记录多头趋势反向时的平仓价格。

  • TrailStopPriceL(多头跟踪止损的平仓价格):用于记录多头跟踪止损时的平仓价格

3 信号发出

计算置换均线

MA1 = Ma(Close,AvgLength); 
DMA1 = MA1[AvgDisplace]; 
PlotNumeric("DMA",DMA1);

判断收盘价是否穿越置换均线

ConCrossOver = CrossUp(Close,DMA1); 
ConCrossUnder = CrossDown(Close,DMA1);

计算各种条件下的BAR数值

  • BarsLastCrsUndL: 多头最近一次下穿DMA离当前BAR的根数。BarsLast函数返回符合条件的最后一个Bar的位置,ConCrossUnder==1表示当前Bar下穿DMA,因此计算的是离当前Bar最近的下穿DMA的Bar与当前Bar之间的Bar数量。

  • BarsLastCrsOvrS: 空头最近一次上穿DMA离当前BAR的根数。BarsLast函数同上,只是这里是计算空头的情况,即当前Bar上穿DMA。

  • BarsFstCrsOvrL: 多头最近的两次上穿DMA离当前BAR的根数中的第一次。SumBars函数是自定义函数,用于计算符合条件的根数之和。这里是计算多头上穿DMA的情况,SumBars(ConCrossOver == 1, 2)表示当前Bar与前两个Bar的上穿DMA情况,减去1是为了得到最近两次上穿DMA中的第一次。

  • BarsSecCrsOvrL: 多头最近的两次上穿DMA离当前BAR的根数中的第二次。BarsLast函数同上,只是这里是计算多头的情况,即当前Bar上穿DMA。

  • BarsFstCrsUndS: 空头最近的两次下穿DMA离当前BAR的根数中的第一次。SumBars函数同上,只是这里是计算空头的情况,即当前Bar下穿DMA。

  • BarsSecCrsUndS: 空头最近的两次下穿DMA离当前BAR的根数中的第二次。BarsLast函数同上,只是这里是计算空头的情况,即当前Bar下穿DMA。

        //多头计算最近的一次下穿发生的BAR离当前BAR的根数
        BarsLastCrsUndL = BarsLast(ConCrossUnder == 1);
        //空头计算最近的一次上穿发生的BAR离当前BAR的根数
        BarsLastCrsOvrS = BarsLast(ConCrossOver == 1);
        //多头 计算最近的两次上穿发生的BAR离当前BAR的根数
        BarsFstCrsOvrL = SumBars(ConCrossOver == 1,2) - 1;
        BarsSecCrsOvrL = BarsLast(ConCrossOver == 1);
        //空头计算最近的两次下穿发生的BAR离当前BAR的根数
        BarsFstCrsUndS = SumBars(ConCrossUnder == 1,2) - 1;
        BarsSecCrsUndS = BarsLast(ConCrossUnder == 1);

开仓标志

  • 如果ConCrossOver == 1,表示发生了多头上穿信号,且最近的一次下穿发生的BAR离当前BAR的根数-最近的两次上穿发生第二次的BAR离当前BAR的根数 不超过ValidBars2,同时最近的两次上穿发生第一次的BAR离当前BAR的根数-多头计算最近的一次下穿发生的BAR离当前BAR的根数 不超过ValidBars1,则设置多头开仓标志EntryFlagL为1,表示可以开多头仓位。此外,将多头的开仓点设置为当前价格加上MinMove * PriceScale,同时将多头的开仓次数EntryCountL设置为0。

  • 如果ConCrossUnder == 1,表示发生了空头下穿信号,且最近的一次上穿发生的BAR离当前BAR的根数-最近的两次下穿发生第二次的BAR离当前BAR的根数 不超过ValidBars2,同时最近的两次下穿发生第一次的BAR离当前BAR的根数-多头计算最近的一次上穿发生的BAR离当前BAR的根数 不超过ValidBars1,则设置空头开仓标志EntryFlagS为1,表示可以开空头仓位。此外,将空头的开仓点设置为当前价格减去MinMove * PriceScale,同时将空头的开仓次数EntryCountS设置为0。

        //设置多头开仓标志
        If(ConCrossOver == 1 && BarsLastCrsUndL - BarsSecCrsOvrL <= ValidBars2 && BarsFstCrsOvrL - BarsLastCrsUndL <= ValidBars1)
        {
            EntryFlagL = 1;
            EntryPointL = High + MinMove * PriceScale;
            EntryCountL = 0;
        }
        //设置空头开仓标志
        If(ConCrossUnder == 1 && BarsLastCrsOvrS - BarsSecCrsUndS <= ValidBars2 && BarsFstCrsUndS - BarsLastCrsOvrS <= ValidBars1)
        {
            EntryFlagS = 1;
            EntryPointS = Low - MinMove * PriceScale;
            EntryCountS = 0;
        }

系统入场

如果尝试多头开仓的次数 EntryCountL 还没有达到最大尝试次数 ValidBars3,那么程序才会继续执行下面的开仓操作。如果已经尝试开仓的次数 EntryCountL 达到了规定的最大次数 ValidBars3,则程序不会再尝试开仓。这个条件语句是为了避免程序在一次尝试开仓失败后一直尝试开仓,从而避免出现过度交易的情况。

对于多头开仓,如果多头开仓标志为1(即满足开仓条件),且当前价格高于设置的开仓点(EntryPointL),同时成交量大于0,则执行买入开仓操作(BK),否则增加开仓计数器(EntryCountL)。

对于空头开仓,如果空头开仓标志为1(即满足开仓条件),且当前价格低于设置的开仓点(EntryPointS),同时成交量大于0,则执行卖出开仓操作(SK),否则增加开仓计数器(EntryCountS)。

        //多头开仓
        If(MarketPosition == 0 && EntryCountL <= ValidBars3)
        {
            If(EntryFlagL == 1 && High >= EntryPointL && Vol > 0)
            {
                BK(DefaultVol);
            }
            Else
            {
                EntryCountL = EntryCountL + 1;
            }
        }
        //空头开仓
        If(MarketPosition == 0 && EntryCountS <= ValidBars3)
        {
            If(EntryFlagS == 1 && Low <= EntryPointS && Vol > 0)
            {
                SK(DefaultVol);
            }
            Else
            {
                EntryCountS = EntryCountS + 1;
            }
        }

更新多头和空头开仓的标志以及计算止损价格

首先,对于多头,如果当前仓位是多头仓位或者开仓先决条件已过有效BAR数,那么就将多头开仓标志设置为0。这里的EntryCountL是记录开仓先决条件已过的BAR数,而ValidBars3是限制开仓先决条件必须过多少个BAR才能开仓的阈值。

接着,计算多头的止损价格,ReversalPriceL是DMA1向下移动一个单位所得到的价格减去一个最小跳动价MinMove的距离,而TrailStopPriceL是过去TrailStopBars个BAR中的最低价。

对于空头,与多头的处理方式类似,如果当前仓位是空头仓位或者开仓先决条件已过有效BAR数,就将空头开仓标志设置为0。然后,计算空头的止损价格,ReversalPriceS是DMA1向上移动一个单位所得到的价格加上一个最小跳动价MinMove的距离,而TrailStopPriceS是过去TrailStopBars个BAR中的最高价。

        //多头开仓或者开仓先决条件已过有效BAR数,修改开仓标志
        If(MarketPosition == 1 || EntryCountL > ValidBars3)
        {
            EntryFlagL = 0;
        }
        //多头止损价格计算
        ReversalPriceL = DMA1[1] - MinMove * PriceScale;
        TrailStopPriceL = LLV(Low[1],TrailStopBars);
        //空头开仓或者开仓先决条件已过有效BAR数,修改开仓标志
        If(MarketPosition == -1 || EntryCountS > ValidBars3)
        {
            EntryFlagS = 0;
        }
        //空头止损价格计算
        ReversalPriceS = DMA1[1] + MinMove * PriceScale;
        TrailStopPriceS = HHV(High[1],TrailStopBars);

系统出场

MarketPosition等于1表示当前持有多头头寸,BarsSinceEntry表示自开仓后已经经过的时间(K线数),Vol表示成交量,如果成交量大于0说明有成交,表示当前价格有实际买卖交易发生。如果满足条件Low <= Max(ReversalPriceL,TrailStopPriceL),即当前价格已经低于最近的反转价位或者移动止损价位,则平仓多头头寸。

MarketPosition等于-1表示当前持有空头头寸,其他参数的含义和解释与平多仓相同。如果满足条件High >= Min(ReversalPriceS,TrailStopPriceS),即当前价格已经高于最近的反转价位或者移动止损价位,则平仓空头头寸。

        //多头平仓
        If(MarketPosition == 1 && BarsSinceEntry > 0 && Vol > 0)
        {
            If(Low <= Max(ReversalPriceL,TrailStopPriceL))
            {
                SP(DefaultVol);
            }
        }
        //空头平仓
        If(MarketPosition == -1 && BarsSinceEntry > 0 && Vol > 0)
        {
            If(High >= Min(ReversalPriceS,TrailStopPriceS))
            {
                BP(DefaultVol);
            }
        }

4 策略总结

该系统的优点在于,通过使用DMA作为均线指标,可以有效地过滤掉价格波动的噪声,从而减少了假信号的产生。同时,该系统还考虑了二次穿越的情况,从而可以进一步排除不可靠的信号。不过,该系统也有一些缺点,比如在市场出现大幅波动时,可能会出现较大的滑点,从而影响交易结果。

系统要素:

  1. 将移动平均K线向后平移一定BAR数即为置换均线

  2. 相隔一定BAR数的收盘价二次穿越置换均线

  3. 二次穿越完成时那根BAR的高点(或低点)作为突破进场价

  4. 完成二次穿越的一定BAR数内突破

入场条件:

  1. 有效期内价格向上突破设定进场价做多

  2. 有效期内价格向下突破设定进场价做空

出场条件:

  1. 价格反向穿越均线后止损

  2. 基于N根K线的高低点的跟踪止损

5 Q&A

  1. 函数使用

CrossUp(A,B) 表当A从下方向上穿过B,成立返回1(True),否则返回0(False)

CrossDown(A,B):表示当A从上方向下穿B,成立返回1(True),否则返回0(False)

BarsLast(Cond) 上一次条件Cond成立到当前的周期数

SumBars(X,A):求累加到指定值的周期数

SumBars(Vol,20000); 将成交量向前累加直到大于等于20000,返回这个区间的周期数。

  1. 图鉴

名称

代码

含义

ConCrossOver

CrossUp(Close,DMA1)

收盘价是否上穿置换均线

ConCrossUnder

CrossDown(Close,DMA1)

收盘价是否下穿置换均线

BarsLastCrsUndL

BarsLast(ConCrossUnder == 1)

多头计算最近的一次下穿发生的BAR离当前BAR的根数

BarsLastCrsOvrS

BarsLast(ConCrossOver == 1)

空头计算最近的一次上穿发生的BAR离当前BAR的根数

BarsFstCrsOvrL

SumBars(ConCrossOver == 1,2) - 1

多头计算最近的两次上穿发生的BAR离当前BAR的根数 前一次

BarsSecCrsOvrL

BarsLast(ConCrossOver == 1)

多头计算最近的两次上穿发生的BAR离当前BAR的根数 后一次

BarsFstCrsUndS

SumBars(ConCrossUnder == 1,2) - 1

空头计算最近的两次下穿发生的BAR离当前BAR的根数 前一次

BarsSecCrsUndS

BarsLast(ConCrossUnder == 1)

空头计算最近的两次下穿发生的BAR离当前BAR的根数 后一次

  1. 开仓标志

多头:

在这里,条件 ConCrossOver == 1 是指当收盘价向上穿越置换均线时,发出多头开仓信号。然后,另外两个条件 BarsLastCrsUndL - BarsSecCrsOvrL <= ValidBars2BarsFstCrsOvrL - BarsLastCrsUndL <= ValidBars1 是为了确认此时的多头开仓信号是可靠的。

BarsLastCrsUndL - BarsSecCrsOvrL <= ValidBars2

多头计算最近的一次下穿发生的BAR离当前BAR的根数 和 多头计算最近的两次上穿发生的BAR离当前BAR的根数后一次 的距离 小于 ValidBars2

BarsFstCrsOvrL - BarsLastCrsUndL <= ValidBars1

多头计算最近的两次上穿发生的BAR离当前BAR的根数 前一次 多头计算最近的一次下穿发生的BAR离当前BAR的根数 的距离

如果最近一次下穿 DMA1 的时间太近,可能代表 DMA1 的趋势正在向下,而不是向上,这种情况下开多仓就不是很明智。因此,需要确保已经有足够的时间让 DMA1 的趋势向上转变,才可以考虑开多仓。

具体而言,如果最近一次下穿 DMA1 的时间距离当前时间不足 ValidBars2 个周期,就意味着 DMA1 的趋势可能还没有完全向上转变,可能仍在下降阶段。因此,在这种情况下,如果开多仓,可能会遭受亏损。因此,需要等待一段时间,以确保 DMA1 趋势已经向上转变,再考虑开多仓。

同时,BarsFstCrsOvrL - BarsLastCrsUndL <= ValidBars1 这个条件是为了进一步确认 DMA1 趋势已经向上转变。如果最近一次下穿 DMA1 距离当前时间不超过 ValidBars2 个周期,但是在这个时间段内,DMA1 已经出现了多次上穿的情况,那么就可以确认 DMA1 趋势已经向上转变,可以考虑开多仓。因此,这个条件进一步提高了开仓的可靠性和成功率。

  1. 止损价格

其中,ReversalPriceL的计算是在DMA1的前一周期(即DMA1[1])的基础上减去一个MinMove * PriceScale的值。这里的MinMove代表一个最小的价格波动单位,而PriceScale则是一个价格缩放因子。这个计算可以看作是将DMA1的前一周期的价格向下偏移一定的距离,从而得到多头止损的价格。

而TrailStopPriceL的计算则是取DMA1前一周期到当前周期中的最低价的最小值,并在此基础上再向下偏移TrailStopBars个周期的价格波动单位,从而得到跟踪止损的价格。这里的TrailStopBars代表跟踪止损的时间窗口大小,即向前多少个周期进行跟踪止损。

这样设计的目的是为了尽可能减小多头开仓的风险,同时也考虑到了价格的波动性和跟踪止损的必要性。在实际交易中,这个计算可能还会包括一些额外的因素,比如手续费和滑点等,以更加准确地估算止损价格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于置换均线的二次穿越突破均线 的相关文章

随机推荐

  • 如何用python进行数据分析

    文章目录 前言 1 Python数据分析流程及学习路径 2 利用Python读写数据 3 利用Python处理和计算数据 4 利用Python分析建模 5 利用Python数据可视化 零基础Python学习资源介绍 Python学习路线汇总
  • DNS 预解析是什么?怎么实现?

    DNS优化 在介绍dns prefetch之前 先要提下当前对于DNS优化主流方法 一般来说 一次DNS解析需要耗费 20 120ms 所以为了优化DNS 我们可以考虑两个方向 减少DNS请求次数 缩短DNS解析时间dns prefetch
  • 网站服务器 80端口吗,你的服务器打开IIS80端口了吗?

    我是中国药都网的站长 做门户网站有二年了 也在A5上和大家分享了很多地方门户经验 今天继续在A5这个平台跟大家分享经验 这个网站我是从2009年做的 用了3次服务器 但是只有第三次用服务器打开了iis80端口并看到意向不到的效果 下面给大家
  • GEE学习笔记 五十五:GEE编辑器绘制样本点的一个bug(官方在5.1给出反馈已经修复相关bug)

    提交的Bug官方在5月1日已经给出反馈 测试发现已经修复了这个Bug 注释 这个是今天发现的一个bug 官方后续肯定会修复的 在做地物分类的时候我们会采用GEE在线采集样本方式 但是这个有一个问题需要注意 如果直接使用绘制矩形和点会将点变为
  • unity3D 下雨效果实现

    这个效果借鉴自unity例子angrybot 并做了一部分适应项目的修改 angrybot的实现方法 单个雨滴 RainBox 1 Start的时候从Mgr里面取一个雨滴的mesh给MeshFilter使用 2 在Update 做下落的循环
  • uniapp-历史搜索记录

    应用场景 很多搜索场景内都能用到这个功能 大概就是用户搜索了某个关键字 然后搜索的关键字可以持久的保存下来 下次打开搜索的时候可以达到快速点击搜索的效果 实现步骤 1 先给输入框双向绑定数据和事件
  • 生成式人工智能的潜在有害影响与未来之路(一)

    这是本文的第1版 反映了截至2023年5月15日 Generative AI的已记载的和预期的危害 由于Generative AI的发展 使用和危害的快速变化 我们承认这是一篇内在的动态论文 未来会发生变化 在本文中 我们使用一种标准格式来
  • 【观察】VMware:二十而冠,以梦为马不负韶华

    申耀的科技观察 读懂科技 赢取未来 今年7月 VMware首席执行官Pat Gelsinger成功登顶了世界七大高峰之一的乞力马扎罗山 期间的巨大挑战可想而知 但越困难越危险 也就越迷人 因为登顶的魅力 也是挑战自我 超越自我的过程 这似乎
  • idea添加自定义注释

    idea添加自定义注释 废话不多说 直接上图 1 设置Settings gt 编辑器Editor gt Live Templates 2 右侧加号 3 填写快捷缩写Abbreviation 描述Description 4 填写注释的内容 5
  • Nginx日志按日分割方法

    本文使用logrotate工具对Nginx日志进行按日的自动切割 操作系统为Centos7 6 步骤如下 1 编写针对Nginx的logrotate脚本如下 保存在 etc logrotate d usr local nginx logs
  • 数据结构——拓扑排序算法

    拓扑排序的深度优先算法 Topological Sort with Depth First Search 是一种在有向无环图 DAG 中进行排序的方法 该算法使用递归来进行深度优先搜索 并在搜索完成后将节点添加到排序结果中 include
  • Set接口概述

    1 Set集合和List集合的区别 Set 不允许元素重复 集合元素唯一 元素可以为null 不能保证迭代顺序恒久不变 无序 存储和取出不一致 List 允许元素重复 并且元素有序 存储和取出一致 2 Set 集合存储元素时可以保证元素的唯
  • 计算机毕业设计 基于SSM框架+Vue的企业人事信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

    博主介绍 从事软件开发10年之余 专注于Java技术领域 Python人工智能及数据挖掘 小程序项目开发和Android项目开发等 CSDN 掘金 华为云 InfoQ 阿里云等平台优质作者 文末获取源码联系 精彩专栏推荐订阅 不然下次找不到
  • idea中配置Tomcat找不到的解决办法

    idea中配置Tomcat找不到的解决办法 最近重装了系统 所以重新下载了一下idea 配置tomcat时发现找不到Tomcat Server 下面是一种解决方法 希望也可以帮助到大家 具体的实施步骤 File gt Settings gt
  • C++中nothrow的介绍及使用

    在C中 使用malloc等分配内存的函数时 一定要检查其返回值是否为 空指针 并以此作为检查内存操作是否成功的依据 这种Test for NULL代码形式是一种良好的编程习惯 也是编写可靠程序所必需的 在C 中new在申请内存失败时默认会抛
  • 使用布谷鸟算法优化的LSTM进行数据回归预测

    使用布谷鸟算法优化的LSTM进行数据回归预测 在时间序列数据分析方面 长短时记忆网络 LSTM 已经成为一种流行的方法 然而 LSTM模型中的大量参数使得该模型的训练变得困难 因此 本文提出了一种基于布谷鸟算法的优化方法来加速LSTM模型的
  • 一网通办的内涵解构

    一网通办 节选 一网通办 这四个字的每一个字都有特定的含义 整合在一起便构成了具有内在逻辑关系的特定概念 1 一网通办 的核心在于 办 办 重视的是办理 一方面从民众角度出发 提高和丰富企业与个人办事的体验度 满意度 获得感 使民众能够及时
  • 1074 Reversing Linked List (25 point(s))

    1074 Reversing Linked List 25 point s Given a constant K and a singly linked list L you are supposed to reverse the link
  • [CentOS]Chkrootkit后门检测工具的安装

    工具介绍 Chkrootkit 工具用来监测 rootkit 是否被安装到当前系统中 rootkit 是 攻击者经常使用的后门程序 这类后门程序通常非常隐秘 不易被察觉 植入后 等于为攻击者建立了一条能够长时间入侵系统或可对系统进行实时控制
  • 基于置换均线的二次穿越突破均线

    1 名词解释 置换均线 移位移动平均线也称置换移动平均线 置换均线 DMA 不是将当根bar上计算的均线值画上当根bar上 而是将历史的均线值画在当根bar上 使均线值整体向未来偏移了指定数量的bar 将移动平均K线向后平移一定BAR数即为