价格玻璃应该是什么样的? - 页 12

 
滚揉机延迟发布的原因是需要制造一种新型的发动机。Beaker作为一个独立的应用程序,作为一个独立的引擎工作,需要提供一个用户API,否则,作为一个封闭的程序,其价值将大打折扣。我过去做的引擎完全依赖于用户的命令,没有自己的功能。新类型的发动机,必须独立工作,也必须从外部控制。我现在正在解决这个问题。
 

今天标志着又向前迈出了重要一步。该引擎现在可以作为一个独立的应用程序运行,将其参数值与连接到它的用户应用程序同步。应用程序像以前一样被连接,但现在它可以请求由引擎功能设置的值。因此,这是一个过渡到程序之间互动的新水平。 引擎作为一个独立的程序可以积累其功能并扩展提供给应用程序的API。

价格堆栈 的情况下,-它已经成为一个独立的应用程序(我将在明天,后天完成),并作为一个指标工作。使用连接,用户可以检索这个杯子的值,并覆盖它们,以修改后的形式将它们返回给杯子。比如说。用户代码对其中一个玻璃领域的价格进行了分析,结果发现它是一些重要指标的水平。用户将他们的字符串标记发送到该字段,它将出现在该价格旁边。这为引擎和用户程序的开发提供了有趣的新可能性。

SZZ.GUI滑块事件,以前只发送到应用程序,现在也进入了引擎的内部功能,事件的平行处理在两端进行--在引擎(根据我的代码)和用户应用程序(根据用户代码)。点击该按钮可以同时触发引擎的功能和所连接的应用程序的功能。
 
杯子里缺少的另一个东西是如果你现在在市场上平仓的利润,即考虑到杯子的填充--与略大于小仓位(如100-150手)有关。
 
是否会有任何热键?
 
Andrey Gladyshev:
会不会有热键?
绝对的。
 
Aleksey Vyazmikin:
杯子里缺少的另一个东西是如果你现在在市场上平仓,即填满杯子的利润--与略大于小的头寸有关(如100-150手)。
账目中的杯具。我将在基本版本发布后考虑,以免耽误时间。
 
价格杯 将被准备好。API连接的文件非常延迟。用你自己的标记语言来写你的文档是非常耗时的。而且,翻斗车的文件也必须要做。还有玻璃本身。并同时优化代码、构造器、修复错误和增加功能。这就是为什么它这么长。但这样一来,一切都会变得更快、更有意义。
 
节目是用什么语言编写的?
传入数据的实际处理速度是多少?
数据是如何分配到价格水平的?
它是一个for循环,还是有一个变量,每个级别都有数据?
事实上,你选择了像西方终端的玻璃的观点类型是正确的。
我建议在杯中加入链接OCO订单的管理,最多三个级别。
而在一般情况下,你可以采取任何功能性的西方市场Dock,看看在其中实现了什么。
或者看看QScalp scalper驱动是如何实现的。
 
Roman:
该程序是用什么语言编写的?
传入数据的实际处理速度是多少?
数据是如何按价格水平分布的?
在for循环或for中,每个级别都有自己的数据变量?
事实上,你选择了杯子的映射类型,就像在西方的终端,是正确的。
我建议在玻璃上增加,对挂钩的OCO投标进行管理,最多可分为三个级别。

1.该方案是用两种语言编写的。基础语言是MQL5,在此基础上是我的标记语言。

2.以与发送相同的方式分发。我的意思是在正确的细胞中。这很难用语言来解释。我稍后会把代码发给你。当然,我必须付出汗水才能将数据输入正确的单元格,但这个问题已经解决了。

3.我将添加所有将被要求的、有意义和重要的东西。
 

下面是将数据分配到我杯子里的单元格的代码。

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)分配到升和降两边,事先计算好升和降两边的最接近的价格。