文章 "可视化策略构建工具. 无需编程即可创建交易机器人" - 页 5 123456789101112...21 新评论 Andrey Barinov 2018.07.22 02:01 #41 Реter Konow:1.明白了。滚动时,就像使用窗口拖动柄一样。你必须按一次,然后再按一次并按住。然后一切正常。 5.如果窗口已超出范围,则需要使用主滚动条。然后再将其拉回可见区域。感谢您的意见! 1) 您只需按住(1 次,不要松开)并拖动。不是一次,是一次又一次:) 5) 您也可以通过底部移动方案。主图层也可以作为地图移动,无需滚动条。您必须 "抓住 "一个空白处并移动它。 是的,我故意没有提示调整大小等。我还记得第一次使用时的提示内容和位置,虽然没有必要,但它们总是会干扰我的视线。 Реter Konow 2018.07.22 10:31 #42 Andrey Barinov:感谢您的评论!1) 您只需按下(1 次不松开)并按住然后拖动。不是一次,是一次又一次:)5) 您也可以通过底部移动方案。主图层也可以作为地图移动,无需滚动条。您必须 "抓住 "一个空白处并移动它。是的,我故意不做调整大小等提示。你还记得第一次的内容和位置,然后它们就会一直困扰着你的眼睛,尽管它们并不是必需的。明白了。谢谢。真的很方便。不过,我用第一只手还是拉不动。窗口和滚动都不行。但如果我再按一次,一切就都正常了。 我不知道是什么原因。 Evgeny Raspaev 2018.07.22 16:44 #43 MQL 是一种非常灵活和强大的语言。它可以用来实现绝对的一切,实现交易者头脑中的任何 "变态"。在程序中,一切都在一定的范围内实现,这是由程序的作者最初设定的。但我可以在 MetaEditore 中免费实现。 Dmitiry Ananiev 2018.07.22 18:39 #44 我甚至不知道学习 MQL 和这个构造器哪个更容易....。 Maxim Dmitrievsky 2018.07.22 19:15 #45 只是为了好玩。外汇领域对此类应用程序的需求并不高 Eugeni Neumoin 2018.07.22 19:25 #46 Aleksey Vyazmikin:这个想法很好,看起来也很有趣,但就绪的 EA 已经有点倾斜了--它要求能够在向下或向侧面滚动的情况下进行构建。这样的界面对于 ME 来说是必要的--写入方形代码并连接,非常方便,尤其是如果你可以制作自己的图标并保存为空白的话--想想 MQ。然而,我感到困惑的是,文章末尾和文章本身都没有代码,这意味着这是一个产品广告。怎么,现在可以撰写关于产品的文章并发表吗,还是这只是少数人的幕后安排?写关于产品的文章早就可以了。另外,MQ 可能不会让所有文章通过。只有那些他们认为值得发表的文章才会通过。 文章的作者创造了一个伟大的产品。但它还需要改进。最好在左右列表中使用鼠标滚轮。滚动浏览这些列表。 我们可以感受到这一开发成果的巨大潜力。 ==== 不好的地方卸载此工具(Expert Advisor)后,图表窗口的配色方案发生了变化。在安装该工具之前,配色方案是相同的。安装后,配色方案发生了变化。这是一个缺点。 从图表中移除实用程序时,必须返回到安装实用程序前的配色方案。最好不要更改颜色方案。所有操作都应在图表顶部的附加窗口中进行。我在创建图形时就是这样做的。在图表顶部创建一个窗口,所有操作都在窗口中绘制。删除该窗口后,就不需要在图表上进行修正了。窗口中创建的所有内容都保存在文件中。 fxsaber 2018.07.22 23:27 #47 Andrey Barinov:交易类是作为静态类实现的,可以与代码的其他部分分开使用。我饶有兴趣地查看了生成源代码(MQL5 >600Kb,EX5 >250Kb)中的交易类。 class cTrade final { //==================== private: //==================== //=============== //=============== void cTrade(void){} virtual void ~cTrade(void){} //=============== //=============== static void AddCurrentTrades(const cTradesFilter &filter,long &tickets[]); static void AddCurrentOrders(const cPendingOrdersFilter &filter,long &tickets[]); static void AddHistoryTrades(const cTradesFilter &filter,long &tickets[]); static void AddHistoryOrders(const cPendingOrdersFilter &filter,long &tickets[]); //=============== //=============== static double CheckLot(const string symbol,const double lots); static bool CheckPlaced(const string symbol,const eTradeType type,const long magic); static bool CheckMargin(const string symbol,const double volume,const eTradeType type,const double price); static bool CheckOrderPrice(const string symbol,const ePendingOrderType type,const double price); static bool CheckStops(const string symbol,const eTradeType type,const bool istrade,const double entrylevel, const double stoploss,const double takeprofit); //=============== //=============== static int GetMatch(const cTradeInfo &trades[],const int forindex,const long &matched[]); static void TradesCloseBy(const long &tickets[],const bool slippageenabled,const long slippage,const ENUM_ORDER_TYPE_FILLING filling); //=============== //=============== static void ModifyTrade(const long ticket,const double newsl,const double newtp); static void ModifyPendingOrder(const long ticket,const double newprice,const double newsl,const double newtp,const datetime newexpiration); //=============== //=============== static void CloseBy(const long ticket1,const long ticket2,const ENUM_ORDER_TYPE_FILLING filling); //=============== //=============== static void BreakEven(const long ticket,const long belevel,const long beprofit); static void TrailingStop(const long ticket,const long tslstart,const long tsldistance,const bool tsllevelenabled,const double tsllevel); //=============== //=============== static void CalculateSLandTP(const string symbol,const eTradeType type,const double entrylevel,const double lots, const bool slpointsenabled,const long slpoints,const bool tppointsenabled,const long tppoints, const bool slmoneyenabled,const double slmoney,const bool tpmoneyenabled,const double tpmoney, const bool slpriceenabled,const double slprice,const bool tppriceenabled,const double tpprice, double &sllevel,double &tplevel); //=============== //=============== static bool CanTrade(void); //=============== //=============== //==================== public: //==================== //=============== //=============== static long ProfitPointsGet(const eTradeType type,const double openprice,const double closeprice,const string symbol); static double CommissionGet(const long positionID); //=============== //=============== static void GetFilteredTradesTickets(const cTradesFilter &filter,long &tickets[]); static void GetFilteredPendingOrdersTickets(const cPendingOrdersFilter &filter,long &tickets[]); //=============== //=============== static double GetLot(const string symbol,const long slpoints,const double moneyrisk); //=============== //=============== static void OpenTrade(const string symbol,const eTradeType type,const double lots,const long magic,const string comment, const bool slpointsenabled,const long slpoints,const bool tppointsenabled,const long tppoints, const bool slmoneyenabled,const double slmoney,const bool tpmoneyenabled,const double tpmoney, const bool slpriceenabled,const double slprice,const bool tppriceenabled,const double tpprice, const bool slippageenabled,const long slippage, const ENUM_ORDER_TYPE_FILLING filling); static void PlacePendingOrder(const string symbol,const double price,const ePendingOrderType type,const double lots, const long magic,const string comment, const bool slpointsenabled,const long slpoints,const bool tppointsenabled,const long tppoints, const bool slmoneyenabled,const double slmoney,const bool tpmoneyenabled,const double tpmoney, const bool slpriceenabled,const double slprice,const bool tppriceenabled,const double tpprice, const bool expirationenabled,const datetime expiration, const ENUM_ORDER_TYPE_FILLING filling); //=============== //=============== static void ModifyTrade(const long ticket,const bool tightenstopsonly, const bool slpointsenabled,const long slpoints,const bool tppointsenabled,const long tppoints, const bool slmoneyenabled,const double slmoney,const bool tpmoneyenabled,const double tpmoney, const bool slpriceenabled,const double slprice,const bool tppriceenabled,const double tpprice); static void ModifyTrades(const long &tickets[],const bool tightenstopsonly, const bool slpointsenabled,const long slpoints,const bool tppointsenabled,const long tppoints, const bool slmoneyenabled,const double slmoney,const bool tpmoneyenabled,const double tpmoney, const bool slpriceenabled,const double slprice,const bool tppriceenabled,const double tpprice); //=============== //=============== static void ModifyPendingOrder(const long ticket,const bool priceenabled,const double price,const bool tightenstopsonly, const bool slpointsenabled,const long slpoints,const bool tppointsenabled,const long tppoints, const bool slmoneyenabled,const double slmoney,const bool tpmoneyenabled,const double tpmoney, const bool slpriceenabled,const double slprice,const bool tppriceenabled,const double tpprice, const bool expirationenabled,const datetime expiration); static void ModifyPendingOrders(const long &tickets[],const bool priceenabled,const double price,const bool tightenstopsonly, const bool slpointsenabled,const long slpoints,const bool tppointsenabled,const long tppoints, const bool slmoneyenabled,const double slmoney,const bool tpmoneyenabled,const double tpmoney, const bool slpriceenabled,const double slprice,const bool tppriceenabled,const double tpprice, const bool expirationenabled,const datetime expiration); //=============== //=============== static void CloseTrade(const long ticket, const bool slippageenabled,const long slippage, const ENUM_ORDER_TYPE_FILLING filling); static void CloseTrades(const long &tickets[],const bool closeby, const bool slippageenabled,const long slippage, const ENUM_ORDER_TYPE_FILLING filling); //=============== //=============== static void DeletePendingOrder(const long ticket); static void DeletePendingOrders(const long &tickets[]); //=============== //=============== static void BreakEven(const long &tickets[],const long belevel,const long beprofit); static void TrailingStop(const long &tickets[],const long tslstart,const long tsldistance,const bool tsllevelenabled,const double tsllevel); //=============== //=============== }; 这一行的目的是什么? static bool cTrade::CheckPlaced(const string symbol,const eTradeType type,const long magic) { //=============== const int ordersnumber=::OrdersTotal(); //=============== //=============== for(int i=0;i<ordersnumber && !::IsStopped();i++) { //=============== const long ticket=(long)::OrderGetTicket(i); //=============== if(::OrderGetInteger(ORDER_POSITION_ID)>0)continue; //=============== 具有非零 ID 的真实订单 - 部分执行? 在代码中找不到填充计算。 Andrey Barinov 2018.07.23 03:54 #48 fxsaber:我饶有兴趣地查看了生成源中的交易类(MQL5 > 600Kb,EX5 > 250Kb)。这一行的目的是什么?具有非零 ID 的真实订单 - 部分执行?在代码中找不到填充计算。#1.这是基于:#9 #2.我从未设法找到一种适用于所有经纪商的填充计算变体。因此,我建议用户通过设置相应元素的参数来自行控制。 Andrey Barinov 2018.07.23 04:00 #49 Eugeni Neumoin:撰写有关产品的文章早已成为可能。另外,MQ 可能不会接受所有文章。只有那些他们认为值得发表的文章才会被接受。文章的作者创造了一个伟大的产品。但它还需要改进。最好能在左右列表中使用鼠标滚轮。滚动浏览这些列表。我能感受到这项开发的巨大潜力。====不好的地方卸载此实用程序(Expert Advisor)后,图表窗口的配色方案发生了变化。在安装该工具之前,颜色方案是相同的。安装后,配色方案发生了变化。这是一个缺点。从图表中移除该工具时,必须返回到安装前的配色方案。最好不要更改颜色方案。所有操作都应在图表顶部的附加窗口中进行。我在创建图形时就是这样做的。在图表顶部创建一个窗口,所有操作都在窗口中绘制。删除该窗口后,就不需要在图表上进行修正了。窗口中创建的所有内容都会保存在文件中。感谢您的评论! 在您的指标中,面板并没有占据所有图表空间,因此图表布局不会改变。我的面板占满了整个可用空间,如果不改变图表方案,就会出现令人不快的假象。 我会考虑在从图表中移除实用程序时,将一切恢复原状。我会在以后的版本中添加滚轮滚动功能。谢谢! fxsaber 2018.07.23 09:08 #50 Andrey Barinov:#1.它是基于 9 号 的。 谢谢,我忘了。 #2.我从来没有找到一种可以在所有经纪商上运行的计算填充变量。所以我建议用户通过设置相应元素的参数来自行控制。能否请您将 GetFilling 不工作的演示服务器名称发给我? 123456789101112...21 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1.明白了。滚动时,就像使用窗口拖动柄一样。你必须按一次,然后再按一次并按住。然后一切正常。
5.如果窗口已超出范围,则需要使用主滚动条。然后再将其拉回可见区域。
感谢您的意见!
1) 您只需按住(1 次,不要松开)并拖动。不是一次,是一次又一次:)
5) 您也可以通过底部移动方案。主图层也可以作为地图移动,无需滚动条。您必须 "抓住 "一个空白处并移动它。
是的,我故意没有提示调整大小等。我还记得第一次使用时的提示内容和位置,虽然没有必要,但它们总是会干扰我的视线。
感谢您的评论!
1) 您只需按下(1 次不松开)并按住然后拖动。不是一次,是一次又一次:)
5) 您也可以通过底部移动方案。主图层也可以作为地图移动,无需滚动条。您必须 "抓住 "一个空白处并移动它。
是的,我故意不做调整大小等提示。你还记得第一次的内容和位置,然后它们就会一直困扰着你的眼睛,尽管它们并不是必需的。
明白了。谢谢。真的很方便。不过,我用第一只手还是拉不动。窗口和滚动都不行。但如果我再按一次,一切就都正常了。
我不知道是什么原因。
这个想法很好,看起来也很有趣,但就绪的 EA 已经有点倾斜了--它要求能够在向下或向侧面滚动的情况下进行构建。
这样的界面对于 ME 来说是必要的--写入方形代码并连接,非常方便,尤其是如果你可以制作自己的图标并保存为空白的话--想想 MQ。
然而,我感到困惑的是,文章末尾和文章本身都没有代码,这意味着这是一个产品广告。怎么,现在可以撰写关于产品的文章并发表吗,还是这只是少数人的幕后安排?
写关于产品的文章早就可以了。另外,MQ 可能不会让所有文章通过。只有那些他们认为值得发表的文章才会通过。
文章的作者创造了一个伟大的产品。但它还需要改进。最好在左右列表中使用鼠标滚轮。滚动浏览这些列表。
我们可以感受到这一开发成果的巨大潜力。
====
不好的地方卸载此工具(Expert Advisor)后,图表窗口的配色方案发生了变化。在安装该工具之前,配色方案是相同的。安装后,配色方案发生了变化。这是一个缺点。
从图表中移除实用程序时,必须返回到安装实用程序前的配色方案。最好不要更改颜色方案。所有操作都应在图表顶部的附加窗口中进行。我在创建图形时就是这样做的。在图表顶部创建一个窗口,所有操作都在窗口中绘制。删除该窗口后,就不需要在图表上进行修正了。窗口中创建的所有内容都保存在文件中。
交易类是作为静态类实现的,可以与代码的其他部分分开使用。
我饶有兴趣地查看了生成源代码(MQL5 >600Kb,EX5 >250Kb)中的交易类。
这一行的目的是什么?
具有非零 ID 的真实订单 - 部分执行?
在代码中找不到填充计算。
我饶有兴趣地查看了生成源中的交易类(MQL5 > 600Kb,EX5 > 250Kb)。
这一行的目的是什么?
具有非零 ID 的真实订单 - 部分执行?
在代码中找不到填充计算。
#1.这是基于:#9
#2.我从未设法找到一种适用于所有经纪商的填充计算变体。因此,我建议用户通过设置相应元素的参数来自行控制。
撰写有关产品的文章早已成为可能。另外,MQ 可能不会接受所有文章。只有那些他们认为值得发表的文章才会被接受。
文章的作者创造了一个伟大的产品。但它还需要改进。最好能在左右列表中使用鼠标滚轮。滚动浏览这些列表。
我能感受到这项开发的巨大潜力。
====
不好的地方卸载此实用程序(Expert Advisor)后,图表窗口的配色方案发生了变化。在安装该工具之前,颜色方案是相同的。安装后,配色方案发生了变化。这是一个缺点。
从图表中移除该工具时,必须返回到安装前的配色方案。最好不要更改颜色方案。所有操作都应在图表顶部的附加窗口中进行。我在创建图形时就是这样做的。在图表顶部创建一个窗口,所有操作都在窗口中绘制。删除该窗口后,就不需要在图表上进行修正了。窗口中创建的所有内容都会保存在文件中。
感谢您的评论!
在您的指标中,面板并没有占据所有图表空间,因此图表布局不会改变。我的面板占满了整个可用空间,如果不改变图表方案,就会出现令人不快的假象。
我会考虑在从图表中移除实用程序时,将一切恢复原状。
我会在以后的版本中添加滚轮滚动功能。谢谢!
#1.它是基于 9 号 的。
谢谢,我忘了。
#2.我从来没有找到一种可以在所有经纪商上运行的计算填充变量。所以我建议用户通过设置相应元素的参数来自行控制。
能否请您将 GetFilling 不工作的演示服务器名称发给我?