ChatGpt让编写EA更容易,但.......

avatar
· Views 200

我身边有很多交易员,都想把自己的交易系统写成EA程序自动执行,但苦于不会MQL语言,在此我分享一下自己的观点:


EA最大的优点就是能够严格执行预先编写好的程序,不会因为人性而导致既定的交易系统在执行层面出现偏差,同时也有缺点。


市场是瞬息万变的,我们无法控制市场,市场不一定会按照我们期望的方向去波动,但有一点是我们可以掌控的,那就是我们交易行为,其中包括:

1、我们所开的仓位

2、我们所设置的止盈

3、我们所设置的止损


我们按照事先定好的交易策略去执行,并且让我们所有的交易行为都在我们的掌控之下,那我们的账户就不会有很大的风险。


chatgpt的出现让编写程序的门槛降低了一大截,我也尝试用他编写了一小段程序,跟大家分享一下:


-----------------------------------------------------我是分割线---------------------------------------------------------------


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

//|                           MA Cross EA |

//|                      Copyright © 2021, Me |

//|                    https://www.example.com |

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

#property copyright "Copyright © 2021, Me"

#property link   "https://www.example.com"

#property version  "1.00"

#property strict


// 输入参数

input int fast_ma_period = 20; // 快速均线周期

input int slow_ma_period = 34; // 慢速均线周期

input double lot_size = 0.01;  // 手数


// 交易相关变量

int ticket = 0;  // 已开仓订单号

bool is_buy = false; // 是否持有多仓

bool is_sell = false; // 是否持有空仓


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

//| EA初始化函数                           |

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

void OnInit()

{

  Print("MA Cross EA started with fast MA period = ", fast_ma_period, ", slow MA period = ", slow_ma_period);

}


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

//| EA每次tick更新时的处理函数                    |

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

void OnTick()

{

  double fast_ma = iMA(NULL, 0, fast_ma_period, 0, MODE_EMA, PRICE_CLOSE, 0); // 计算快速均线

  double slow_ma = iMA(NULL, 0, slow_ma_period, 0, MODE_EMA, PRICE_CLOSE, 0); // 计算慢速均线


  // 判断金叉和死叉

  if (fast_ma > slow_ma && !is_buy) // 金叉,如果没有持有多仓则开多仓

  {

    if (ticket == 0 || OrderSelect(ticket, SELECT_BY_TICKET))

    {

      // 没有已开仓订单或者已开仓订单已被平仓,则开多仓

      ticket = OrderSend(Symbol(), OP_BUY, lot_size, Ask, 3, 0, 0, "MA Cross EA Buy", 0, 0, Green);

      if (ticket > 0)

      {

        is_buy = true;

        is_sell = false;

      }

    }

  }

  else if (fast_ma < slow_ma && !is_sell) // 死叉,如果没有持有空仓则开空仓

  {

    if (ticket == 0 || OrderSelect(ticket, SELECT_BY_TICKET))

    {

      // 没有已开仓订单或者已开仓订单已被平仓,则开空仓

      ticket = OrderSend(Symbol(), OP_SELL, lot_size, Bid, 3, 0, 0, "MA Cross EA Sell", 0, 0, Red);

      if (ticket > 0)

      {

        is_buy = false;

        is_sell = true;

      }

    }

  }

  else if (fast_ma < slow_ma && is_buy) // 死叉,如果持有多仓则平多仓

  {

    if (ticket != 0 && Order


-----------------------------------------------------我是分割线---------------------------------------------------------------


以上这段代码,只用了不到10秒就完成了


我想说的是,写代码将来会变得越来越容易,但千锤百炼过后的成熟交易系统,才是最珍贵的。


什么样的系统才是真正成熟的交易系统?

1、一个时间周期内能够达到比较可观的稳定盈利的;

2、经过市场验证行之有效的;

3、风险可控的。


交易系统千千万,只有适合自己的才是最好的,而适合自己的是需要经过长时间磨练出来的

PS:不要说用模拟账号,模拟和真实有着一条不可逾越的鸿沟。


今天就写到这,不定期会跟大家分享交易心得和团队交易成果,喜欢的记得关注~~

Peringatan: Pendapat yang disampaikan sepenuhnya merupakan milik penulis dan tidak mencerminkan posisi resmi Followme. Followme tidak bertanggung jawab atas keakuratan, kelengkapan, atau keandalan informasi yang disediakan, serta tidak bertanggung jawab atas tindakan apa pun yang diambil berdasarkan konten ini, kecuali dinyatakan secara tertulis.

Suka artikel ini? Tunjukkan apresiasimu dengan memberi hadiah untuk penulis.
Balasan 2

Tinggalkan pesan Anda sekarang

  • tradingContest