价格玻璃应该是什么样的? - 页 12 1...567891011121314 新评论 Реter Konow 2019.05.19 12:18 #111 滚揉机延迟发布的原因是需要制造一种新型的发动机。Beaker作为一个独立的应用程序,作为一个独立的引擎工作,需要提供一个用户API,否则,作为一个封闭的程序,其价值将大打折扣。我过去做的引擎完全依赖于用户的命令,没有自己的功能。新类型的发动机,必须独立工作,也必须从外部控制。我现在正在解决这个问题。 Реter Konow 2019.05.20 22:08 #112 今天标志着又向前迈出了重要一步。该引擎现在可以作为一个独立的应用程序运行,将其参数值与连接到它的用户应用程序同步。应用程序像以前一样被连接,但现在它可以请求由引擎功能设置的值。因此,这是一个过渡到程序之间互动的新水平。 引擎作为一个独立的程序可以积累其功能并扩展提供给应用程序的API。 在价格堆栈 的情况下,-它已经成为一个独立的应用程序(我将在明天,后天完成),并作为一个指标工作。使用连接,用户可以检索这个杯子的值,并覆盖它们,以修改后的形式将它们返回给杯子。比如说。用户代码对其中一个玻璃领域的价格进行了分析,结果发现它是一些重要指标的水平。用户将他们的字符串标记发送到该字段,它将出现在该价格旁边。这为引擎和用户程序的开发提供了有趣的新可能性。 SZZ.GUI滑块事件,以前只发送到应用程序,现在也进入了引擎的内部功能,事件的平行处理在两端进行--在引擎(根据我的代码)和用户应用程序(根据用户代码)。点击该按钮可以同时触发引擎的功能和所连接的应用程序的功能。 Aleksey Vyazmikin 2019.05.21 00:53 #113 杯子里缺少的另一个东西是如果你现在在市场上平仓的利润,即考虑到杯子的填充--与略大于小仓位(如100-150手)有关。 Andrey Gladyshev 2019.05.21 03:22 #114 是否会有任何热键? Реter Konow 2019.05.21 07:04 #115 Andrey Gladyshev: 会不会有热键? 绝对的。 Реter Konow 2019.05.21 07:06 #116 Aleksey Vyazmikin: 杯子里缺少的另一个东西是如果你现在在市场上平仓,即填满杯子的利润--与略大于小的头寸有关(如100-150手)。 账目中的杯具。我将在基本版本发布后考虑,以免耽误时间。 Реter Konow 2019.06.13 16:13 #117 价格杯 将被准备好。API连接的文件非常延迟。用你自己的标记语言来写你的文档是非常耗时的。而且,翻斗车的文件也必须要做。还有玻璃本身。并同时优化代码、构造器、修复错误和增加功能。这就是为什么它这么长。但这样一来,一切都会变得更快、更有意义。 Roman 2019.06.13 16:25 #118 节目是用什么语言编写的? 传入数据的实际处理速度是多少? 数据是如何分配到价格水平的? 它是一个for循环,还是有一个变量,每个级别都有数据? 事实上,你选择了像西方终端的玻璃的观点类型是正确的。 我建议在杯中加入链接OCO订单的管理,最多三个级别。 而在一般情况下,你可以采取任何功能性的西方市场Dock,看看在其中实现了什么。 或者看看QScalp scalper驱动是如何实现的。 Реter Konow 2019.06.13 16:44 #119 Roman: 该程序是用什么语言编写的? 传入数据的实际处理速度是多少? 数据是如何按价格水平分布的? 在for循环或for中,每个级别都有自己的数据变量? 事实上,你选择了杯子的映射类型,就像在西方的终端,是正确的。 我建议在玻璃上增加,对挂钩的OCO投标进行管理,最多可分为三个级别。1.该方案是用两种语言编写的。基础语言是MQL5,在此基础上是我的标记语言。2.以与发送相同的方式分发。我的意思是在正确的细胞中。这很难用语言来解释。我稍后会把代码发给你。当然,我必须付出汗水才能将数据输入正确的单元格,但这个问题已经解决了。3.我将添加所有将被要求的、有意义和重要的东西。 Реter Konow 2019.06.13 17:10 #120 下面是将数据分配到我杯子里的单元格的代码。 void On_DOM_Event() { int t = 0; //---------------------------- MqlTick last_tick; SymbolInfoTick(Symbol(),last_tick); //---------------------------- MarketBookGet(NULL,priceArray); //---------------------------- double p = 0; long ask_size = 0, bid_size = 0; int s = ArraySize(priceArray); //---------------------------- if(s > 0) { //------------------------- --- for(int i1 = 0; i1 < 100; i1++)prices[i1] = NULL; for(int i1 = 0; i1 < 100; i1++)ask_vol[i1] = NULL; for(int i1 = 0; i1 < 100; i1++)bid_vol[i1] = NULL; //---------------------------- int Closest_to_ask = 0; //---------------------------- for(int a1 = 0; a1 < s; a1++) { if( priceArray[a1].price == last_tick.ask || (priceArray[a1].price < last_tick.ask && (((a1 + 1 < s) && priceArray[a1 + 1].price >= last_tick.bid) || (a1 + 1 == s))) ) { Closest_to_ask = a1; break; } } //---------------------------- for(int a2 = Closest_to_ask; a2 >= 0; a2--) { //Alert("t ",t," a2 ",a2); prices[49-t] = Normalize_Double(priceArray[a2].price,_Digits,_Point); ask_size += priceArray[a2].volume; ask_vol[49-t] = (string)priceArray[a2].volume; t++; } //-------------------------------- t = 0; //Alert("_Digits ",_Digits); //-------------------------------- for(int a3 = Closest_to_ask + 1; a3 < s; a3++) { prices[50+t] = Normalize_Double(priceArray[a3].price,_Digits,_Point); bid_size += priceArray[a3].volume; bid_vol[50+t] = (string)priceArray[a3].volume; t++; } //------------------------------------------------ //------------------------------------------------ E_DOM_1_Price(prices[40]); E_DOM_1_Ask_size(ask_vol[40]); E_DOM_2_Price(prices[41]); E_DOM_2_Ask_size(ask_vol[41]); E_DOM_3_Price(prices[42]); E_DOM_3_Ask_size(ask_vol[42]); E_DOM_4_Price(prices[43]); E_DOM_4_Ask_size(ask_vol[43]); E_DOM_5_Price(prices[44]); E_DOM_5_Ask_size(ask_vol[44]); E_DOM_6_Price(prices[45]); E_DOM_6_Ask_size(ask_vol[45]); E_DOM_7_Price(prices[46]); E_DOM_7_Ask_size(ask_vol[46]); E_DOM_8_Price(prices[47]); E_DOM_8_Ask_size(ask_vol[47]); E_DOM_9_Price(prices[48]); E_DOM_9_Ask_size(ask_vol[48]); E_DOM_10_Price(prices[49]); E_DOM_10_Ask_size(ask_vol[49]); //------------------------------------------------- E_DOM_11_Price(prices[50]); E_DOM_11_Bid_size(bid_vol[50]); E_DOM_12_Price(prices[51]); E_DOM_12_Bid_size(bid_vol[51]); E_DOM_13_Price(prices[52]); E_DOM_13_Bid_size(bid_vol[52]); E_DOM_14_Price(prices[53]); E_DOM_14_Bid_size(bid_vol[53]); E_DOM_15_Price(prices[54]); E_DOM_15_Bid_size(bid_vol[54]); E_DOM_16_Price(prices[55]); E_DOM_16_Bid_size(bid_vol[55]); E_DOM_17_Price(prices[56]); E_DOM_17_Bid_size(bid_vol[56]); E_DOM_18_Price(prices[57]); E_DOM_18_Bid_size(bid_vol[57]); E_DOM_19_Price(prices[58]); E_DOM_19_Bid_size(bid_vol[58]); E_DOM_20_Price(prices[59]); E_DOM_20_Bid_size(bid_vol[59]); //------------------------------------------------- } RMSG(1); } 为了记录传入的数据,我做了一个100格的阵列。我将传入的数据从数组中心(单元格49)分配到升和降两边,事先计算好升和降两边的最接近的价格。 1...567891011121314 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
今天标志着又向前迈出了重要一步。该引擎现在可以作为一个独立的应用程序运行,将其参数值与连接到它的用户应用程序同步。应用程序像以前一样被连接,但现在它可以请求由引擎功能设置的值。因此,这是一个过渡到程序之间互动的新水平。 引擎作为一个独立的程序可以积累其功能并扩展提供给应用程序的API。
在价格堆栈 的情况下,-它已经成为一个独立的应用程序(我将在明天,后天完成),并作为一个指标工作。使用连接,用户可以检索这个杯子的值,并覆盖它们,以修改后的形式将它们返回给杯子。比如说。用户代码对其中一个玻璃领域的价格进行了分析,结果发现它是一些重要指标的水平。用户将他们的字符串标记发送到该字段,它将出现在该价格旁边。这为引擎和用户程序的开发提供了有趣的新可能性。
SZZ.GUI滑块事件,以前只发送到应用程序,现在也进入了引擎的内部功能,事件的平行处理在两端进行--在引擎(根据我的代码)和用户应用程序(根据用户代码)。点击该按钮可以同时触发引擎的功能和所连接的应用程序的功能。会不会有热键?
杯子里缺少的另一个东西是如果你现在在市场上平仓,即填满杯子的利润--与略大于小的头寸有关(如100-150手)。
传入数据的实际处理速度是多少?
数据是如何分配到价格水平的?
它是一个for循环,还是有一个变量,每个级别都有数据?
事实上,你选择了像西方终端的玻璃的观点类型是正确的。
我建议在杯中加入链接OCO订单的管理,最多三个级别。
而在一般情况下,你可以采取任何功能性的西方市场Dock,看看在其中实现了什么。
或者看看QScalp scalper驱动是如何实现的。
该程序是用什么语言编写的?
传入数据的实际处理速度是多少?
数据是如何按价格水平分布的?
在for循环或for中,每个级别都有自己的数据变量?
事实上,你选择了杯子的映射类型,就像在西方的终端,是正确的。
我建议在玻璃上增加,对挂钩的OCO投标进行管理,最多可分为三个级别。
下面是将数据分配到我杯子里的单元格的代码。
为了记录传入的数据,我做了一个100格的阵列。我将传入的数据从数组中心(单元格49)分配到升和降两边,事先计算好升和降两边的最接近的价格。