文章 "从头开始开发一款智能交易系统"

 

新文章 从头开始开发一款智能交易系统已发布:

在本文中,我们将讨论如何做到最少编程来开发一款交易机器人。

本文中介绍的智能交易系统可以遵照各种方式进行改进,以便处理参数集合,但这将需要更多代码,使其更独立于MetaTrader 5。

该 EA 的巨大成功在于它利用 MetaTrader 5 本身来执行代码中没有的动作,因此它非常稳定可靠。




作者:Daniel Jose

 

早上好

非常好,只是有一点我不明白。当我在 WIN 和 WDO 中下单时,EA 会根据我在 "杠杆 "中输入的合约数 打开 6 个订单。因此,即使我想用 1 份合约进行交易,也不行,它会打开 6 份合约。

这是不是我忽略的一个概念?我是初学者,所以我是从这个前提开始的。

非常感谢你的分享。

 
据我所知,您需要具备 Algo 交易知识才能使用它...
[删除]  
非常好
 
joecafrois #:
据我所知,您需要了解 AlgoTrading 才能使用它...

您不需要 AlgoTrading 的知识...但在使用 EA(智能交易系统)时需要启用它,否则 EA 的工作方式就会受到限制。

 
Feresther 合约数 打开 6 个订单。因此,即使我想用 1 个合约进行交易,也不行,它会打开 6 个。

这是不是我忽略的一个概念?我是初学者,所以我从这个前提出发。

非常感谢您的分享。

可能是系统在您点击鼠标时发送了多个订单,原因可能是多方面的,但感谢您的报告😁👍,要解决这个问题,您必须在点击鼠标时添加一个额外的测试,要修改或添加的点会以绿色标记......请确保您输入的方式正确,否则订单可能无法发送,或者服务器可能不接受 ...不过,添加这个额外的测试应该能解决您的问题。逻辑如下:当鼠标被点击时,STATIC 变量将被设置,只有当鼠标不再被按下时才会被重置,以允许发送新订单。

inline void MoveTo(int X, int Y, uint Key)
{
        static double d_block = 0; 
        int w = 0;
        datetime dt;
        bool bEClick, bKeyBuy, bKeySell;
        double take = 0, stop = 0, price;
        bEClick  = (Key & 0x01) == 0x01;                //左击
        bKeyBuy  = (Key & 0x04) == 0x04;                /SHIFT 按下
        bKeySell = (Key & 0x08) == 0x08;                //CTRL 按下
        ChartXYToTimePrice(Infos.Id, X, Y, w, dt, price);
        ObjectMove(Infos.Id, Infos.szHLinePrice, 0, 0, price = (bKeyBuy != bKeySell ? AdjustPrice(price) : 0));
        ObjectMove(Infos.Id, Infos.szHLineTake, 0, 0, take = price + (Infos.TakeProfit * (bKeyBuy ? 1 : -1)));
        ObjectMove(Infos.Id, Infos.szHLineStop, 0, 0, stop = price + (Infos.StopLoss * (bKeyBuy ? -1 : 1)));
        if ((bEClick) && (bKeyBuy != bKeySell) && (d_block == 0)) CreateOrderPendent(bKeyBuy, Infos.Volume, (d_block = price), take, stop, Infos.IsDayTrade); else d_block = 0;
        ObjectSetInteger(Infos.Id, Infos.szHLinePrice, OBJPROP_COLOR, (bKeyBuy != bKeySell ? Infos.cPrice : clrNONE));
        ObjectSetInteger(Infos.Id, Infos.szHLineTake, OBJPROP_COLOR, (take > 0 ? Infos.cTake : clrNONE));
        ObjectSetInteger(Infos.Id, Infos.szHLineStop, OBJPROP_COLOR, (stop > 0 ? Infos.cStop : clrNONE));
};
 
是否有 mq4 版本
 
好文章,谢谢。
 
下午好,迷你指数的点数和手数在哪里设置?
 
C4rl1n #:
下午好,迷你指数的点数和手数在哪里设置?

实际上,在这个代码中,调整是自动进行的。您告诉它金融家和要交易的合约数,代码就会以点数进行调整......当您在图表上放置 Expert Advisor 时,就会给出这些信息。😁👍

 
我明白了,这是因为我想开发我的 EA,但手数和点数不匹配