どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 214

 
solnce600:

それはもう......頭を悩ませましたよ。

SECOND CONDITIONの推測は間違っていたのでしょうか?


私はあなたのコードなしで例を書きました。中括弧{ }があるところとないところの例です。どの行がいつ実行されるかを書きました。私はただ、コードの中でどのようにロジックを整理していくかを理解してほしかっただけです。中括弧がない...では、この場合どうなるのか、私の例で見てみましょう。

当てなくていいんだよ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ただ、理解しようとすると...

 
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:


具体的には?


上記の補足はどういう意味でしょうか?

一般的な意味は、:

if(Bid<=(N-30*Point) && 別の条件)

{

売り注文を 出す。

}

Nは最後の注文の建値ですが、どうやって知ることができますか?