[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 145

 
MK07:

ご助言ありがとうございます。 しかし、インジケータをインストールすると、奇妙な描画になります(チャート参照)。 チャートウィンドウの左境界から黄色の垂直線までのインデント(バー単位)は、ウィンドウ内の可視バーが何本あっても常に停止せず、8本となります。 この8本がウィンドウ左境界を越えるとすぐにすべてのチャートラインが現れ、すべてが正常になります。 これは修正できるでしょうか?またどのように修正するのでしょうか?


こんな風にやってみよう

   int limit;
   int counted_bars=IndicatorCounted();
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
 
私は、ウィンドウに表示されているすべてのバーのための指標を構築し、この時点でその最大値と最小値を見つける必要があります!私の前の投稿で述べた問題を解決するために私を助けて、私は例を持っていますが、私はそれをすべて理解していない、誰かが一つずつこれらの3行を説明することができますか?
 // обработка видимых баров.
   int bars_count=WindowBarsPerChart();
   int bar=WindowFirstVisibleBar();
   for(int i=0; i<bars_count; i++,bar--)
     {
      // номера баров уменьшаются, так как нумерация идет в обратном порядке.
      // ...
     } 
 
MK07:
このコード構成は、すでに計算されたインディケータを新たに再計算するのではなく、ゼロと最初の(チェック用の)バーだけで、新しいティックごとにインディケータを再計算することができます。私は、ウィンドウに表示されているすべての可視バーによってインディケータを構築し、この時点でその最大値と最小値を見つける必要があります。以前の投稿で述べた問題を解決するのを助けてください。例がありますが、すべてが私には明らかではない。誰かがこれらの3行を一行に説明できますか?

何が必要なのかよく分かりませんが、インジケータの可視バーの MAXとMINを検索する必要がある場合は、まずインジケータを描画してから検索してください。

WindowPriceMax()、WindowPriceMin()を使用したほうがいいかもしれませんね。

 
r772ra:

ステファン2

作品紹介


結局は配列の不具合があるのですが、whileで

c for forは問題なく動作します。

))

 

こんにちは。

みんな、何を使ってEAをテストすればいいのか教えてくれ。なぜなら、内蔵されたMTは平均50%のシミュレーション品質を与え、スクリーンショットでは90%以上を投稿している人がいるからです。

 
jusser:

こんにちは。

みんな、何を使ってEAをテストすればいいのか教えてくれ。なぜなら、内蔵されたMTは平均50%のシミュレーション品質を与え、スクリーンショットでは90%以上を投稿している人がいるからです。


全部の分の履歴があれば、90%になります。99%は、ティックヒストリー fxtを自分で作成することで達成されます。これは通常、デューカスコープの引用符を使用して行われます。99%の品質テストをテーマにしたGoogleスクリプト

 
こんにちは、MT4で建玉を表示するインジケーターがあれば教えてください。そうでない場合、似たようなもので代用できるのでしょうか?
 
こんにちは、Expert Advisorのコードで、最後の注文から50ピップ後に同じ種類の注文を設定する条件を実装する方法です。
 
Armen63:
こんにちは、Expert Advisorのコードに、最後の注文から50ピップ後に同じ種類の注文を設定する条件を実装する方法です。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);
}
 

添付のインジケーターのコードのどこに行を挿入すればいいのか、何も分からないのでアドバイスお願いします。このインジケータは、通貨ペアの動きを別のウィンドウで表示しますが、市場概要ウィンドウでペアの1つが欠けているため、何も表示されないということです。というアドバイスを受け、こちらを使用することにしました。

この場所だけエラーが発生する可能性があります

double Vol = iCustom(s[n],0, "Ind ZeroLag MACD",FastEMA,SlowEMA,0,0) / MarketInfo(s[n], MODE_POINT)。

MarketInfo(symbol, MODE_POINT)にデータがない場合、ゼロによる除算が 行われる。

MarketInfo(symbol, MODE_POINT) にチェックを挿入する。

どこに置けばいいのかわからない(マーケット概要にGBP/NZDのペアがない)。アドバイスをお願いします。

ファイル:
indicator.mq4  6 kb