当前位置: 首页 > news >正文

日元交易策略

本策略是一款基于外汇市场的日元交易策略,主要通过分析价格的高点和低点,结合RSI指标来生成交易信号,并计算相应的止损和止盈价位。策略的核心在于捕捉价格的波动趋势,并在合适的时机进行买入或卖出操作。

 

核心思想

该策略的核心思想是通过识别价格的高点和低点来确定潜在的买卖点。具体来说,当价格突破近期的最高点时,可能意味着市场处于上升趋势,此时可以考虑买入;而当价格突破近期的最低点时,可能意味着市场处于下降趋势,此时可以考虑卖出。此外,策略还结合了RSI指标来进一步过滤交易信号,以降低交易风险。

 

交易逻辑

1. 识别高点和低点:策略首先通过`SwingHighBar`和`SwingLowBar`函数来识别价格的高点和低点。当识别到新的高点或低点时,会更新相应的数组和变量。

 

2. 计算止损和止盈价位:在识别到高点和低点后,策略会计算相应的止损和止盈价位。止损价通常设置在近期低点下方一定距离处,而止盈价则设置在近期高点上方一定距离处。这样可以在价格波动时及时止损,并在达到预期收益时平仓。

 

3. 结合RSI指标过滤交易信号:为了降低交易风险,策略引入了RSI指标来过滤交易信号。当RSI值低于30时,可能意味着市场处于超卖状态,此时买入的风险相对较低;而当RSI值高于70时,可能意味着市场处于超买状态,此时卖出的风险相对较低。

 

4. 执行交易操作:在满足交易条件时,策略会通过`OrderSend`函数来执行买入或卖出操作。同时,策略还设置了止损过滤器和目标过滤器,以便在达到预设的止损或目标价位时自动触发相应的订单。

 

策略特点

1. 趋势跟踪:该策略主要基于价格的高点和低点来确定交易方向,从而实现对市场趋势的跟踪。

 

2. 风险管理:策略通过设置止损和止盈价位来控制交易风险,并结合RSI指标来进一步过滤交易信号,降低交易失败的概率。

 

3. 灵活性:策略提供了多种输入参数,可以根据个人的风险偏好和交易习惯进行调整,以适应不同的市场环境。

 

注意事项

虽然本策略在理论上有较好的表现,但在实际应用中仍需注意以下几点:

 

1. 市场风险:外汇市场具有较高的波动性和不确定性,投资者需充分了解市场风险并谨慎决策。

 

2. 参数调整:策略中的参数和变量可能需要根据实际情况进行调整,以达到最佳的交易效果。

 

3. 技术支持:在使用本策略时,建议投资者具备一定的外汇交易知识和经验,并寻求专业的技术支持。

 

策略代码:

//+------------------------------------------------------------------+

//|                                                   日元交易策略.mq4  |

//|                                                                |

//+------------------------------------------------------------------+

#property copyright "版权所有"

#property link      "链接地址"

#property version   "2023.03.26 14:00"

 

// 定义输入参数

input bool targ_fil = true;

input bool stop_fil = true;

input double stp_marg = 0.25;

input bool rsi_filt = true;

input int Password = 0;

 

// 定义数组和变量

double px[5];

int barx[5];

bool seq[5];

int ct;

double lwpan = 9999;

double hipan = 0;

double sh = 0;

double sl = 9999;

int new_ = 0;

double p4l = 0;

double p4s = 0;

double avgp3p4 = 0;

double ed = 0;

double entr = 0;

double stopl = 0;

double stoph = 0;

bool rsil = false;

bool rsis = false;

 

// 交易信号判断

if(SwingHighBar(1, High[1], 1, 5) == 1 && seq[0] != 1)

{

    for(ct = 2; ct >= 1; ct--)

    {

        px[ct] = px[ct-1];

        barx[ct] = barx[ct-1];

        seq[ct] = seq[ct-1];

    }

    px[0] = High[1];

    barx[0] = BarsTotal-1;

    seq[0] = true;

    new_++;

}

else if(SwingLowBar(1, Low[1], 1, 5) == 1 && seq[0] != false)

{

    for(ct = 2; ct >= 1; ct--)

    {

        px[ct] = px[ct-1];

        barx[ct] = barx[ct-1];

        seq[ct] = seq[ct-1];

    }

    px[0] = Low[1];

    barx[0] = BarsTotal-1;

    seq[0] = false;

    new_++;

}

 

// 高点突破后计算止损和止盈价位

if(SwingHighBar(1, High[1], 1, 5) == 1 && seq[0] == true && new_ == new_[1])

{

    for(ct = 2; ct <= (BarsTotal-barx[0]-1); ct++)

    {

        if(Low[ct] < lwpan) lwpan = Low[ct];

    }

    px[2] = px[1];

    px[1] = lwpan;

    px[0] = High[1];

    barx[0] = BarsTotal-1;

    seq[2] = true;

    seq[1] = false;

    seq[0] = true;

    lwpan = 9999;

    new_++;

    sl = 99999;

    Print(DateTime(), "幻影谷");

}

 

// 低点突破后计算止损和止盈价位

else if(SwingLowBar(1, Low[1], 1, 5) == 1 && seq[0] == false && new_ == new_[1])

{

    for(ct = 2; ct <= (BarsTotal-barx[0]-1); ct++)

    {

        if(High[ct] > hipan) hipan = High[ct];

    }

    px[2] = px[1];

    px[1] = hipan;

    px[0] = Low[1];

    barx[0] = BarsTotal-1;

    seq[2] = false;

    seq[1] = true;

    seq[0] = false;

    hipan = 0;

    new_++;

    sh = 0;

    Print(DateTime(), "幻影峰");

}

 

// 调整止损价和止盈价

if(seq[0] == false)

{

    sl = 99999;

    if(High > sh) sh = High;

}

else if(seq[0] == true)

{

    sh = 0;

    if(Low < sl) sl = Low;

}

 

// 计算止损和止盈价位的相关参数

if(seq[0] == true)

{

    p4l = px[0] + sl - px[1];

    avgp3p4 = (sl + p4l) / 2;

    ed = (p4l - sl) / 4;

    entr = sl + ed;

    stopl = sl - 0.05;

    rsis = false;

}

else if(seq[0] == false)

{

    p4s = px[0] + sh - px[1];

    avgp3p4 = (sh + p4s) / 2;

    ed = (p4s - sh) / 4;

    entr = sh + ed;

    stoph = sh + 0.05;

    rsil = false;

}

 

// 使用RSI指标过滤交易信号

if(seq[0] == true && RSI(Close, 3) < 30 && Low < avgp3p4) rsil = true;

else if(seq[0] == false && RSI(Close, 3) > 70 && High > avgp3p4) rsis = true;

 

// 根据RSI指标和止损价执行买入或卖出操作

if(rsi_filt == true)

{

    if(PositionGet() == 0 && seq[0] == true && Open[1] < p4l && (entr - stopl) > stp_marg && rsil == true) OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,entr,0,0,clrNONE);

    else if(PositionGet() == 0 && seq[0] == false && Open[1] > p4s && (stoph - entr) > stp_marg && rsis == true) OrderSend(Symbol(),OP_SELL,1.0,Bid,3,0,entr,0,0,clrNONE);

}

else

{

    if(PositionGet() == 0 && seq[0] == true && Open[1] < p4l && (entr - stopl) > stp_marg) OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,entr,0,0,clrNONE);

    else if(PositionGet() == 0 && seq[0] == false && Open[1] > p4s && (stoph - entr) > stp_marg) OrderSend(Symbol(),OP_SELL,1.0,Bid,3,0,entr,0,0,clrNONE);

}

 

// 如果设置了止损过滤器,触发相应的止损订单

if(stop_fil == true)

{

    OrderSend(Symbol(),OP_BUY,1.0,stoph,3,0,stoph,0,0,clrNONE);

    OrderSend(Symbol(),OP_SELL,1.0,stopl,3,0,stopl,0,0,clrNONE);

}

 

// 如果设置了目标过滤器,触发相应的目标订单

if(targ_fil == true)

{

    OrderSend(Symbol(),OP_SELL,1.0,p4l,3,0,p4l,0,0,clrNONE);

    OrderSend(Symbol(),OP_BUY,1.0,p4s,3,0,p4s,0,0,clrNONE);

}

 

// 打印交易相关的信息

if(seq[0] == true) Print(DateTime(), " p3 ", sl, " p2 ", px[0], " entry ", entr, " tar ", p4l);

else if(seq[0] == false) Print(DateTime(), " p3 ", sh, " p2 ", px[0], " entry ", entr, " tar ", p4s);

 

//+------------------------------------------------------------------+

http://www.dtcms.com/a/301106.html

相关文章:

  • fchdir系统调用及示例
  • vector使用和模拟
  • PyTorch深度学习入门记录4
  • Oracle 数据库报 ora-00257 错误并且执行alter system switch logfile 命令卡死的解决过程
  • Oracle 19C RU 19.28 升级和安装
  • IndexedDB全面掌握:从入门到Odoo OWL框架实战
  • 动手学深度学习笔记04(上)
  • net8.0一键创建支持(Orm-Sqlite-MySql-SqlServer)
  • GPT 生成一个打字练习页面
  • 基于 LSTM 与 SVM 融合的时间序列预测模型:理论框架与协同机制—实践算法(1)
  • Elasticsearch - 倒排索引原理和简易实现
  • macOS 安装 Homebrew
  • 因果推断 | 元学习方法原理详解和代码实操
  • Redisson的布隆过滤器
  • MicroPython 开发ESP32应用教程 之 UART 详细讲解及应用
  • 数学建模——灰色关联分析
  • 一个MySQL的数据表最多能够存多少的数据?
  • net8.0一键创建支持(Redis)
  • GPT-4o实战应用指南:从入门到精通的技术心得
  • 【QT开发手册】 Qt界面介绍Qt程序多种实现项目文件解析
  • C语言(长期更新)第6讲:函数
  • 20250727-1-Kubernetes 网络-Ingress介绍,部署Ingres_笔记
  • Java面试精进:测试、监控与序列化技术全解析
  • Product Hunt 每日热榜 | 2025-07-27
  • 【C语言网络编程基础】TCP 服务器详解
  • 《不只是接口:GraphQL与RESTful的本质差异》
  • 机器学习的算法有哪些?
  • python优秀案例:基于python flask实现的小说文本数据分析与挖掘系统,包括K-means聚类算法和LDA主题分析
  • 系统整理Python的条件语句和常用方法
  • [ctfshow web入门]web99 in_array的弱比较漏洞