任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 214

 
solnce600:

这只是它....,我已经绞尽脑汁了。

我是否猜错了第二条条件?


我写了一个没有你的代码的例子。这是一个例子,说明哪里有大括号{ },哪里没有...我写了哪些行将被执行,何时执行。我只是想让你了解如何在你的代码中组织逻辑。你没有大括号...所以请看我的例子,在这种情况下会发生什么。

你不需要猜测!!!!!!!!!!!!!!试着理解...

 
artmedia70:

我写了一个没有你的代码的例子。这是一个例子,说明哪里有大括号{ },哪里没有...我写了哪些行将被执行,何时执行。我只是想让你了解如何在你的代码中组织逻辑。你没有大括号...所以请看我的例子,在这种情况下会发生什么。

你不需要猜测!!!!!!!!!!!!!!试着理解...


非常感谢你。 明天,在头脑清醒的情况下,我将努力把事情看清楚。
 

晚上好,你能告诉我如何实现以下任务吗?

在一定条件下,有一个交易的入口。然后是股票,但这里的问题是,如果价格比前一个交易的一定距离更接近,如何使股票不打开。如果价格与之前的入市价格(不管是第一次还是5、10次等)相差30个点,那么订单就不应该打开。

谢谢你的回答。

 
teplovoz:

晚上好,你能告诉我如何实现以下任务吗?

在一定条件下,有一个交易的入口。然后是股票,但这里的问题是,如果价格比前一个交易的一定距离更接近,如何使股票不打开。如果价格与之前的入市价格(不管是第一次还是5、10次等) 相差30个点,那么订单就不应该打开。

谢谢你们的答复。

在市场和最接近的位置之间,我想是的。

职能

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает расстояние в пунктах между рынком и ближайшей       |
//|             позицей                                                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    op - торговая операция          (    -1      - любая позиция)           |
//|    mn - MagicNumber                (    -1      - любой магик)             |
//+----------------------------------------------------------------------------+
int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
  double d, p;
  int i, k=OrdersTotal(), r=1000000;

  if (sy=="" || sy=="0") sy=Symbol();
  p=MarketInfo(sy, MODE_POINT);
  if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
          if (OrderType()==OP_SELL) {
            d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
        }
      }
    }
  }
  return(r);
}

呼叫

if(DistMarketAndPos()>30)
   {
//открываемся
   }
 
r772ra:
在市场和最接近的位置之间,我想是的。 。

我明白这个逻辑,如何计算最后一笔交易的开盘价
 
增加上述内容
 
我理解,价格是由OrderOpenPrice()返回的。
我知道可以用函数 OrderSelect()来选择订单,但我如何选择后者?
 
r772ra:
上述增编

没有得到它...
 
teplovoz:

我不明白...


了解什么,确切地说?

 
r772ra:


它到底是什么?


你说上面的补充是什么意思?

一般来说,其含义是 。

如果(Bid<=(N-30*Point)&&其他条件)

{

打开一个卖出订单

}

N是上一个订单的开盘价--我怎么知道的?