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

 
そしてもう一つ、図書館の運営に関する質問です。
ライブラリファイルを作成し、コンパイルして、すべてエラーなく進みました。
その関数をインジケータコードにインポートしてコンパイルすると、すべてもOKです。
インジケータを起動すると、インポートする関数が 実行されない。

インジケータコード、すべて動作します。以下は、ライブラリのコードです。

//+------------------------------------------------------------------+
//|                                                         lib1.mq4 |
//|                                         Copyright © 2012, Fox.RM |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Fox.RM"
#property link      "http://www.metaquotes.net"
#property library
//+------------------------------------------------------------------+
//| My function                                                      |
//+------------------------------------------------------------------+
double Sredn(double ArrSr[])
{
double a=1,c,step=1/20;
for (int i=0;i<=20;i++)
{if (ArrSr[i]==0){a*=1;}else{a*=MathAbs(ArrSr[i]);}}
c=MathPow(a, step);
  return(c);
}
//+------------------------------------------------------------------+

これは、インジケータコード内の呼び出しです。

#import "lib1.ex4"
    double Sredn(double& ArrSr[]);
    void SetText(string name, string name2, string text, string text2, color c, 
int size);
#import

 
Fox_RM:
皆さん、ごきげんよう。
Expert Advisor用のインジケーターのコードを書き換えて、トラッキングすることにしました。
私のインジケーターのコードを変更し、そのシグナルの処理をトレースすることにしました。
コンパイル時のエラーもなく、Strategy Testerでもエラーなく動作しています。

使い方がわからない。

Z.I.間違いやバカが多いと思うので、空砲を撃ってください。

int counted_bars=IndicatorCounted(); 

あなた自身はExpert Advisorを持っていて、関数はインジケータのためのものだと書いていますね。

無理に欲しいバーの数を数えて、それ以上増やさない。


次に、このシグナルによってすでにオープンが行われているかどうかのチェックを追加します。そうしないと、1ティックごとに新しい注文が出ることになります。

3つ目は、iCustom関数の確認

 
ilunga:

ご自身でExpert Advisorと書かれていますが、関数はインジケータ用です。

無理に欲しいバーの数を数えて、それ以上増やさない。

また、強制的に計算する方法は?
 
Fox_RM:
皆さん、ごきげんよう。
Expert Advisor用のインジケーターのコードを書き換えて、トラッキングすることにしました。
私のインジケーターのコードを変更し、そのシグナルの動作を追跡することにしました。
コンパイル時のエラーもなく、Strategy Testerでもエラーなく動作しています。

使い方がわからない。

Z.I. 間違いやバカが多いと思うので、空砲を撃ってください。


オープニング価格
if (Sredn(TP_UP)>=2.5)OrderSend(Symbol(),OP_SELL,0.1,Close[i],2,50,20);
 if (Sredn(TP_DN)>=2.0)OrderSend(Symbol(),OP_BUY,0.1,Close[i],2,50,20);
 
Fox_RM:
強制的にカウントする方法は?
Expert Advisorや取引開始時に重要なのは、0本目のシグナルだけですよね?そこで、この計算に必要なバーの数から計算周期を短くする
 
r772ra:

オープニング価格

つまり、バーの再計算にこの条件を使用するのですか?

しかし、私のインジケータでは、毎ティック ごとにTP_UPと TP_DNの アレイが計算されます。したがって、まずそれらを計算する必要があります。

 
ilunga:
Expert Advisorや取引開始のためには、0本目のシグナルだけが重要なのですね?そこで、この計算に必要なバーの数から計算周期を短くする

そこでNewBar() 関数を使って新しいバーで 注文を出そうとしました。このような目的で使用する場合?

例えば if(NewBar())i++; のようなもの。

 
ilunga:
Expert Advisorと取引開始のために、重要なのは0本目のバーのシグナルだけですよね?そこで、この計算に必要なバーの本数から計算サイクルを短くする
そして、Expert Advisorにとって、この2つの計算の根本的な違いは何なのか、まだよく分かっていません;(笑)。
 
Fox_RM:
そしてもう一つ、図書館の運営に関する質問です。
ライブラリファイルを作成し、コンパイルして、すべてエラーなく進みました。
その関数をインジケータコードにインポートしてコンパイルすると、すべてもOKです。
インジケータを起動すると、インポートする関数が実行されない。

インジケータコード、すべて動作します。以下は、ライブラリのコードです。

これは、インジケータコード内の呼び出しです。

もしかしたら、インジケーターのinit()で配列を正しく準備できていないのでは?インポートされた 機能は、そこで機能しなかったということでしょうか?
 
TarasBY:
もしかしたら、インジケーターのinit()で配列が正しく準備されていないのでは?インポート機能が動作しなかったということでしょうか?
いいえ、そうではありません。確認したところ、すべて正しいようです。さらに、プログラムで使用したときに正しく動作するのはなぜですか?