アスク! - ページ 169

 

オフラインチャートインジケータ

Kalenzo:
インジケーターの中に特別なコードを書く必要はありません。nagivatorからオフラインのチャートにドラッグ&ドロップするだけで、動作します。まずはメタトレーダーで利用可能な通常のデータ、例えばeurusdで試してみてください。もし、eurusdで動作し、NYSEで動作しない場合は、そのインジケータのカウント方法が間違っており、修正・調整する必要があります(例えば、丸めが必要であったり、計算中にゼロ除算などのエラーが発生したり)。

Kalenzoさん、こんにちは。

ご返信ありがとうございます。 MT4プラットフォームのインジケーターは問題なく動きます。 個人でコーディングしたカスタムインジケータが動作しないのです。 コードに通貨記号があるのに気づきました。 私は、通貨ペア GBPUSDからNYSEシンボルにシンボルを変更する必要があるかどうか疑問に思っていました? 私はまた、指標はどのように動作するかを知りたいと思った。 どのようなフォルダ内のどのようなデータは、もともとプラットフォームにインストールされていた指標かどうか指標を行うか、あなたは無料のカスタムコード化された指標をダウンロードしている?

ありがとうございました。

 
winsumloosesum:
Kalenzoさん、こんにちは。

ご返信ありがとうございます。 MT4プラットフォームのインジケータは素晴らしく動作します。 それは動作しません個人がコード化したカスタムインジケータです。 私は、コード内の通貨記号に注目しています。 私は、通貨ペアGBPUSDからNYSEシンボルにシンボルを変更する必要があるかどうか疑問に思っていた? 私はまた、インジケータがどのように動作するかを知りたいと思いました。 どのようなフォルダ内のどのようなデータは、もともとプラットフォームにインストールされていた指標かどうか指標を行うか、あなたは無料のカスタムコード化された指標をダウンロードしている?

ありがとうございます!

こんにちは

はい、確かにあなたは、インジケータコードを確認する必要があります。もしお使いのインジケータがSymbol()関数を 使用していない場合(またはSymbolの代わりにNULL値が必要な場合)、それは100%の問題です。通常、インジケータは接続されているチャートからデータを変換します。したがって、オリジナルのMT4インジケータは機能します。しかし、カスタム・インディケータでは、他のシンボル/タイムフレームからデータを取得することができ、その後、どのデータを使用したいかを手動で指定する必要があります。例えば、EURUSDをベースとして、GBPUSDやUSDCHFを計算のための他のパラメータとして使用することができます。

この場合、インジケータコードを確認し、シンボルを計算したいNYSEに変更する必要があります。そうすればうまくいきます。

 

いつもありがとうございます

いつもありがとうございます。

 

デバッグの問題

インジケータの機能を理解するために、基本的なEAを書いているのですが、ちょっとびっくりすることがありました。最初はリペイントインディで、今は非常に基本的なインディで。

数字を理解するために、私はバックテスト中のログレポートに値を印刷するためにprint()関数を 使用します。しかし、print関数がログプリントを邪魔しているようで、ログの大きな部分が失われています。

何かアイデアはありますか?以下は私のコードの抜粋です。

//----+ 取引のためのシグナルを定義する

if (kline[1] < Level_Up) // しきい値以下

if (kline[0] > dline[0]) // メインオーバーシグナル

if (kline[0] > kline[1]) // メインは上昇する必要があります。

if (dline[0] > 0 ) { // Signal must nost stay at zero level < dline[1]) { // 前回のMain Under Signalのため、クロスアップした

BUY_Sign = true。

if (デバッグ) {

Print ("Longopen K0 ",DoubleToStr(kline[0],Digits)," K1 ",DoubleToStr(kline[1],Digits).DoubleToStr(kline[1],Digits),

"K2 ",DoubleToStr(kline[2],Digits), "K3 ",DoubleToStr(kline[3],Digits)) を表示します。

Print (" D0 ",DoubleToStr(dline[0],Digits)," D1 ",DoubleToStr(dline[1],Digits)," D2 ",DoubleToStr(dline[2],Digs),

"D3 ",DoubleToStr(dline[3],Digits))となります。

}

}

ありがとうございました。

マルセル

 

助けてください!私はコーダーではありませんが、ここで最善を尽くしています。なぜ私のインジケータが動作しないかについての任意のアドバイスは非常に高く評価されるだろう!

よろしくお願いします。

#property indicator_separate_window (インジケーターウィンドウ)

#property indicator_buffers 4 (インジケータバッファ4)

#property indicator_color1 ライムグリーン

#property indicator_color2 ファイヤーブリック

#property indicator_color3 グリーン

#property indicator_color4 レッド

#プロパティ indicator_width1 2

#プロパティインジケータ_幅2 2

#プロパティインジケータ_幅3 2

#property indicator_width4 2

//---------------------------------------------------------------------indicator parameters

extern int FastEMA=12;

extern int SlowEMA=26;

extern int SignalSMA=9;

//---------------------------------------------------------------------indicator buffers

double OsmaBuffer[];

double Spm;

double Smm;

double Spmaks1;

double Spmaks2;

double Smmin1;

double Smmin2;

double nou[];

double ver[];

double OsMAUP[];

double OsMADOWN[];

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int init()

{

//--------------------------------------------------------------------カウントのために2つのバッファが追加で使用されます。

IndicatorBuffers(4);

//--------------------------------------------------------------------drawing settings

SetIndexStyle(0,DRAW_HISTOGRAM)を設定。

SetIndexBuffer(0,OsMAUP)を設定します。

SetIndexStyle(1,DRAW_HISTOGRAM)を設定します。

SetIndexBuffer(1,OsMADOWN)を設定します。

SetIndexStyle(2,DRAW_ARROW)を設定します。

SetIndexArrow(2,159)を設定します。

SetIndexBuffer(2,Spmaks1)を設定します。

SetIndexStyle(3,DRAW_ARROW)を設定します。

SetIndexArrow(3,159)を設定します。

SetIndexBuffer(3,Smmin1)を設定します。

SetIndexDrawBegin(0,SignalSMA)。

IndicatorDigits(Digits+2)。

//-------------------------------------------------------------------データウィンドウとインジケータサブウィンドウラベルの名前

IndicatorShortName("OsMA Marius("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");

//-------------------------------------------------------------------initialization done

return(0);

}

//+------------------------------------------------------------------+

//| オシレーターの移動平均

//+------------------------------------------------------------------+

int start()

{

int limit;

int counted_bars=IndicatorCounted();

//最後にカウントされたバーが再カウントされる

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//-------------------------------------------------------------------Main Loop

for(int i=0; i<limit; i++)

{

OsmaBuffer=iOsMA(NULL,0,FastEMA,SlowEMA,SignalSMA,PRICE_WEIGHTED,i)。

nou = OsmaBuffer;

ver = OsmaBuffer;

if(OsmaBuffer > 0)

{

OsMAUP = OsmaBuffer;

OsMADOWN = 0;

}

さもなくば

{

OsMADOWN = OsmaBuffer;

OsMAUP = 0;

}

//-------------------------------------------------------------------Cross Down

if ((nou0))

{

Spmaks1 = Spmaks2;

if(Spmaks2 > 0)

{

Spmaks2 = 0;

}

}

//-------------------------------------------------------------------Cross Up

if ((nou>0)&&(ver<0))

{

Smmin1 = Smmin2;

if(Smmin2 < 0)

{

Smmin2 = 0;

}

}

//-------------------------------------------------------------------During Swing

if(ver > 0)

{

Spm = ver;

if((nou > ver) || (nou == ver))

{

Spm = nou;

}

if((Spm > Spmaks2) || (Spm == Spmaks2))

{

Spmaks2 = Spm;

}

}

さもなくば

{

Smm = ver;

if((nou < ver) || (nou == ver))

{

Smm = nou;

}

if((Smm < Smmin2) || (Smm == Smmin2))

{

Smmin2 = Smm;

}

}

}

//--------------------------------------------------------------------done

return(0);

}

//+------------------------------------------------------------------+

 

最新の20本のバーの間の線を引く方法

質問があります。

移動 平均線に関するインジケータが欲しいのですが。

常に最新の20本のバーの間で線を引き続けるものです。

しかし、私はそれを記述する方法がわからない。

私はあなたが私を助けることができるとこのような指標を提供することを願っています。

どうもありがとうございました。

 

皆さん、ごきげんよう。

皆さん、お元気ですか?

私の質問は、プログラミングの分野で資格のある人々にとってかなり単純なものです。

私は3つのインジケータをそのままの状態で使用したe.a.を専門的に作成してもらいました。これは、1つのe.a.でコード化された4つの戦略システムで、3つのインジケータが様々な組み合わせで取引されています。ちょっとだけ歴史があるのですが、この部分は実は関係ないのです。

3つのインジケータはそれぞれ2つのバッファを使用しており、唯一の変数は "CountBars "でした。調整可能なオプションが「CountBars」だけということで、最適化できない状態だったので、Jurikのアルゴリズムを前処理の一種として使うという素晴らしいアイデアを思いつきました。そうすれば、インジケータの生の状態、つまり反応は速いが、いくつかの「しゃっくり」がある状態を保ちつつ、非常に反応がよく、同時に遅れの少ないスムージング要素を追加することができます。そこで、この掲示板で有名なメンバーにその部分の支援を依頼したところ、彼らは非常に完璧にやってくれました。しかし、そのような依頼をしたのですから、これ以上、Jurikのスムージングバージョンと同じインジケータを入れ替えるようなことはしたくないと思いました。

とはいえ、「そんなに難しいことではない」と思い、自分でできることは十分に知っているつもりでした。3つのiCustomインスタンスで呼び出される名前を変更し、iCustoms部分の下と同様に "extern "部分に新しい変数を追加し、(今、指標のJRK smthdバージョンはまだ2バッファを使用して、彼らは追加の変数、合計2を持っている: "SmoothLength" と "SmoothPhase"."CountBars "は削除されました)、Voila!そんな簡単なものならいいのですが。私はそれらの事を行い、それをコンパイルし、エラーや警告はありません。しかし、バックテスト/フォワード テストをしようとすると、取引ができません......。

何か見落としているのでしょうか?何かアドバイスがあれば、よろしくお願いします。

 

Bizzzzzump!

 
forex_for_life:
それでは皆さん、ごきげんよう。

皆さん、お元気ですか?

私の質問は、プログラミングの分野で資格のある人のためのかなり単純なものです。

私は、3つの指標をそのままの状態で使用したe.a.を専門的に作成してもらいました。これは、1つのe.a.でコード化された4つの戦略システムで、3つのインジケータが様々な組み合わせで取引されています。ちょっとだけ歴史があるのですが、この部分は実は関係ないのです。

3つのインジケータはそれぞれ2つのバッファを使用しており、唯一の変数は "CountBars "でした。調整可能なオプションが「CountBars」だけということで、最適化できない状態だったので、Jurikのアルゴリズムを前処理の一種として使うという素晴らしいアイデアを思いつきました。そうすれば、インジケータの生の状態、つまり反応は速いが、いくつかの「しゃっくり」をしながらも、非常に反応がよく、同時に遅れの少ないスムージング要素を追加することができます。そこで、この掲示板で有名なメンバーにその部分の支援を依頼したところ、彼らは非常に完璧にやってくれました。しかし、そのような依頼をしたのですから、これ以上、Jurikのスムージングバージョンと同じインジケータを入れ替えるようなことはしたくないと思いました。

とはいえ、「そんなに難しいことではない」と思い、自分でできることは十分に知っているつもりでした。ただ、3つのiCustomインスタンスで呼び出される名前を変更し、iCustoms部分の下と同様に "extern "部分に新しい変数を追加し、(今、指標のJRK smthdバージョンはまだ2バッファを使用して、彼らは余分な変数、合計2を持っている: "SmoothLength "と "SmoothPhase"。"CountBars "は削除されました)、Voila!そんな簡単なものならいいのですが。私はそれらの事を行い、それをコンパイルし、エラーや警告はありません。しかし、バックテスト/フォワードテストをしようとすると、取引ができません...。

私は何かを見逃しているのでしょうか?どんなことでも、アドバイスをお願いします。

Fflさん、こんにちは。

iCustom(NULL,0," indicator name" SmoothLength,SmoothPhase,0,1) は買い、 iCustom(NULL,0," indicator name" SmoothLength,SmoothPhase,1,1) は売りで、 "indicator name" を呼びたい指標に変更するだけでよいです。

 
mrtools:
iCustom(NULL,0," indicator name" SmoothLength,SmoothPhase,0,1) は買い、 iCustom(NULL,0," indicator name" SmoothLength,SmoothPhase,1,1) は売りで、 "indicator name" を呼び出したい指標に変更するだけでよいです。

ピース Tさん

ご指導ありがとうございます。ご指摘の通り変更したところ、E.A.はエラーや警告を出さずにコンパイルされますが、まだ取引はできません。もう一つの回避策をすぐに試してみます...。