香港:
  • 纽约:
  • 伦敦:
  • 东京:
  • 悉尼:
  • 香港:
  • 新加坡:
加载中 ...
返回 > 【3-5】- 策略编写实战
【3-5】- 策略编写实战
0 人下载
版本:-- 最近更新:
EA编程
0基础
MQL4
策略编写包含三大核心:信号检查、建仓管理、持仓管理(风险控制),50行代码编写一个完整策略
首次购买EA策略,全场8折优惠;首次购买后当天复购其他EA商品85折优惠。
适用平台
品种
回测周期收益率
回测时间周期
复盘模型的质量

在学习了一系列基本的知识后,今天带大家进入策略编写的实战部分,策略编写包含三大核心:信号检查、建仓管理、持仓管理(风险控制),通俗一点讲就是:必须从清楚进场到出场出场的一个完整流程。

  • 信号检查:既开仓之前需知道为什么而开仓、开多或者开空,使开的仓位有理有据;
  • 建仓管理:信号出来以后,你可以自由决策,根据这个型号执行一系列动作,比如要开多单还是空单,亦或者要加仓还是平仓等。
  • 持仓管理或风险控制:一个完整的仓位必须有始有终,比如设置固定盈损,移动止损、甚至加仓、手数控制,加仓次数控制等。像流水线一样,每个环节规定好该做什么。

准备工作:

先写好后续要使用到的外部参数。
input int fast =20,
slow =50,
magic =2024;
input double lot = 0.01;
input string cmt = "死亡均线";

信号定义:

本次策略讲解我们以MA移动均线为例进行讲解,先来熟悉一下这个指标的基本参数;

首先检查是否有新的 K 线生成,定义的一个 NewBar() 函数来实现。只有在有新 K 线时,才会继续执行后续的策略逻辑,以避免无节制的开仓。

  • 在有新 K 线的情况下,计算两组不同周期的移动平均线:
  • fast1 和 fast2 是短期移动平均线,使用了 slow 周期。
  • slow1 和 slow2 是长期移动平均线,使用了 fast 周期。

信号判断:


这里使用了 iMA() 函数来计算移动平均线,并指定了不同的时间位移(2 和 1)来获取当前和上一个 K 线的数值。根据两组移动平均线的关系,判断是否出现交叉信号:

  • 如果短期均线 fast1 上穿长期均线 slow1(即 fast1 > fast2 且 slow1 < slow2),则发出买入信号。此时先平掉任何现有的卖单,然后下达买单。
  • 如果短期均线 fast1 下穿长期均线 slow1(即 fast1 < fast2 且 slow1 > slow2),则发出卖出信号。此时先平掉任何现有的买单,然后下达卖单。

完整代码:

#property copyright "BBTrading"
#property link      "https://www.00123.com"
#property strict

input    int fast =20,
             slow =50,
             magic =2024;
input double lot = 0.01;
input string cmt = "死亡均线";

int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
void OnTick()
  {
     if(NewBar()){
        double fast1 =iMA(Symbol(),PERIOD_CURRENT,slow,0,MODE_SMMA,PRICE_CLOSE,2);
        double fast2 =iMA(Symbol(),PERIOD_CURRENT,fast,0,MODE_SMMA,PRICE_CLOSE,2);
        double slow1 =iMA(Symbol(),PERIOD_CURRENT,slow,0,MODE_SMMA,PRICE_CLOSE,1);
        double slow2 =iMA(Symbol(),PERIOD_CURRENT,fast,0,MODE_SMMA,PRICE_CLOSE,1); 
        if(fast1>fast2 && slow1<slow2){
           CloseOrder(OP_SELL);
           int res=OrderSend(_Symbol,OP_BUY,lot,Ask,20,0,0,cmt,magic);
        }
        if(fast1<fast2 && slow1>slow2){
           CloseOrder(OP_BUY);
           int res=OrderSend(_Symbol,OP_SELL,lot,Bid,20,0,0,cmt,magic);
        } 
     }
  }
void CloseOrder(int type)
  {
     for(int j = OrdersTotal() - 1; j >= 0; j--) {
        if(OrderSelect(j, SELECT_BY_POS, MODE_TRADES)){
           if(OrderSymbol() == _Symbol && OrderMagicNumber()==magic && OrderType() == type){
              bool close =OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10);
           }
        }
     }
  }
bool NewBar()
  {
     static datetime  last;
     if(last!= Time[0]){
        last = Time[0];
        return true;
     }
     return false;
 

展开全部
收起
活动规则
首购优惠8折
活动期间,首次在EA宝库中购买EA策略的用户,购买的第一个EA策略享受8折优惠。
首购当日复购优惠85折
首次购买后当日,再次复购其他EA策略享受85折优惠,不限数量。
复购优惠null折
非首购当日,再次复购其他EA策略享受null折优惠,不限数量。

请通过“大白交易黑盒”,更高效运行

已安装,打开大白
第三方账号登录
第三方账号登录
第三方账号登录
  • *站点:
  • *网址:
  • 类型:
  • 联系方式:
  • 简介:

  • RRH123欢迎您的加入!如有问题请添加咨询管理员【微信号:938123】
  • *类型:
  • *问题:
  • 图片说明:
  • 联系方式:

  • RRH123感谢您的反馈!如有问题请添加咨询管理员【微信号:938123】