停止限制 - 页 6

 

破发后,在当日开盘时可进行价格挤兑,第二天。
就是这样的挤压,在开市的时候。
唯一令人困惑的是,为什么没有按投标价格执行。
我有一个怀疑,测试仪中深度计的报价要么是在说谎,要么是报价有偏差。
是否选择了按实际刻度的模拟?

在实际交易中,通常会错过从开市开始的前1-5分钟。
否则就会出现这样的挤压,在第一个可用的价格,以及带有疯狂价差的波动。
出于这个原因,在市场收盘前,例如在23.40,删除你所有的止损订单。
并允许在10.01之后下单,控制点差。

你有一个昨天发出的止损单,它在开市时没有流动性而跳动。
为什么你设置了100点的限制?把进场的限额定为5个点。


 
Dmitry Fedoseev:

这就是为什么你会得出奇怪的结论--出于懒惰的原因。我不需要它,你需要它来了解发生了什么事。

图表上的最后一个价格是在12月2日的23:48。日志显示订单在3日10点执行,这是什么情况?

再次强调,我不需要它,我早就明白了一切。你是真的不明白,还是在假装?

12月2日23:48的图表不是最后的价格,是时间线,这就是终端的工作原理 ))))))))))))


 
Sergey Chalyshev:

再次强调,我不需要这些,我早就明白这一切了。你是真的不明白,还是在假装?

12月2日的图表中,23:48不是最后的价格,而是时间轴,这就是终端的工作原理 ))))))))))))


一个非常深刻的表达:23:48不是价格。

嗯...我走了...我将尽量不再干涉你的话题。

 
Dmitry Fedoseev:

一个非常深刻的表达:23:48不是价格。

嗯...我走了...我将尽量不再干涉你的主题。

迪米特里,不要走得太远,不要干扰案件的审理 ))

你有时会提供帮助,并亲自帮助我了解一些问题。

你想让我给你一个我的交易账户的登录名和密码吗?只有一个条件:不要耗费太多,不要改变密码。

 
Sergey Chalyshev:

迪米特里,不要走得太远,不要介入这个案子 ))

你有时会提供帮助,并亲自帮助我了解一些问题。

你想让我给你我的交易账户的登录和密码吗?只有一个条件:不要耗费太多,不要改变密码。

是的,我也会在测试器中尝试几个订单。

 
Dmitry Fedoseev:

是的,我也会在测试器中尝试几个订单。

我将亲自给你写信

 
Sergey Chalyshev:

显然,没有人使用它。

订单是以不存在的价格开的。

一个简单的例子来检查。

//+------------------------------------------------------------------+
//|                                               StopLimit_Test.mq5 |
//+------------------------------------------------------------------+
#include <Trade\Trade.mqh>
CTrade trade;

input int Deviation = 100;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0)
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_BUY_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.ask+Deviation*ticksise,  // цена исполнения
         tick.ask+10*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
  }
//+------------------------------------------------------------------+

而这里的实际问题是:止损价和限价是混在一起的。实际上,limit_price参数首先被混淆了,然后才是价格。 因此,如果你设置了一个买入-停止-限制,价格应该高于limit_price。但在报价的代码中,恰恰相反,第一次触发发生在收盘价tick.ask+10*ticksise,并且bylite出现在上面的某个地方(高于市场价格),它立即被触发。

但在测试器中,在测试期开始时,价格就会下降,所以我用stoplimit检查,这种代码工作得很好。

void OnTick()
  {

   static int x=0;
   
   if(x==1)return;
   
   x=1;
  

   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0){
      Comment(GetTickCount()," ",ticksise);
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_SELL_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.bid-100*ticksise,  // цена исполнения
         tick.bid-1000*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
   }

  }

在第一次触发后,限制出现...

 
Dmitry Fedoseev:

实际问题是这样的:止损价和限价是混在一起 的。事实上,先有limit_price参数,然后才是价格。因此,如果你设置了一个买入-停止-限制,价格应该 高于limit_price。但在报价的代码中,恰恰相反,第一次触发发生在收盘价tick.ask+10*ticksise,并且bylite出现在上面的某个地方(高于市场价格),它立即被触发

但在测试器中,在测试期开始时,价格就会下降,所以我用stoplimit检查,这种代码工作得很好。

在第一次触发后,限制出现...

在我的例子中没有任何东西被混淆,BuyLimit的设置高于Ask,它应该在Ask执行,而不是在BuyLimit中指定的价格。

再读一遍整个支部,疲于解释。

尝试将买入限价设置在卖出价之上,而不设置止损限价。

只需将ORDER_TYPE_BUY_STOP_LIMIT 替换为ORDER_TYPE_BUY_LIMIT。

BuyLimit在Ask价格上被充分触发,而在BuyStopLimit的情况下,则在BuyLimit 中指定的价格上被充分触发。

 
Sergey Chalyshev:

在我的例子中,没有任何东西被混淆,BuyLimit被设置在Ask之上,它应该在Ask执行,而不是在BuyLimit中指定的价格。

再读一遍整个分支,累了就解释。

尝试将买入限价设置在卖出价之上,而不设置止损限价。

只需将ORDER_TYPE_BUY_STOP_LIMIT 替换为ORDER_TYPE_BUY_LIMIT。

买入限价在卖出价处充分触发,而在买入止损限价的情况下,在买入限价 中指定的价格处不充分触发。

现在很清楚了。

 

在外汇的测试器中也可以检查出止损限价单。设置 "执行"=交换即可。



我检查了买入止损限价,具体如下:我把限价单的价格设置得比激活价差。该订单在激活时以市场价格(卖价)开盘。因此,看来测试器中的功能是有效的。