コーディングのヘルプ - ページ 36

 

STOPLOSSを制御する手が必要

mladen:
kemal44

コードの中での関数の使い方が説明されているスレッドへのリンクはこちらです :https://www.mql5.com/en/forum/173005

それは非常に良いそこに説明されている(と私は1つの記事で説明することができますよりも)それらを使用する方法

親愛なるMladen 。

バックテストでは、BreakEven-Stoplosは動作しているようですが、実際の口座では、私が見る限り、それは正しく動作しないことを確認します。

エキスパートファイルを見て、何が問題なのか教えていただけませんか?

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

ファイル:
xpexpert.txt  24 kb
 

...

ケマル

ターミナルのエキスパートタブで、どのようなエラーが書き出されるかを確認して ください。

エントリーロジックが抜けているので確認できない(書いてある通りにBuyConditionやSellConditionをtrueにすることはない)。

kemal44:
親愛なるMladen 。

バックテストでは、BreakEven-Stoplosは動作しているようですが、実際の口座では、私が見る限り、それは正しく動作していないこと。

エキスパートファイルを見て、何が問題なのか教えていただけませんか?

事前にありがとうございます
 
mladen:
kemal

ターミナルのエキスパートタブで、どのようなエラーが書き出されているか確認してください。

エントリーロジックが抜けているので確認できません。

これが売り買いのロジックを持つエキスパートです。

問題はブレイクイーブン・ストップロスです。

ブレイクイーブンとは、エントリーポイントから5ピップ上昇したら、ポートフォリオを保護するためにストップロスをエントリーポイントに設定することです。

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

ファイル:
xpexpert_1.txt  24 kb
 

...

ストップロスの最小距離はシンボルやブローカーによって異なり、ある瞬間から別の瞬間に変わることがあるので、ブレークイーブンを設定する前に、次のようなチェックを追加します(これは注文が買い注文の場合の一般例で、売り注文に 非常に似た書き方ができます) ...:

double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

追記:これはすべて、ブローカーがECNブローカーでない場合に有効です(最新の変更(ビルド419以降)により)。ブローカーがECNブローカーである場合、最新のビルドではMarketInfo(Symbol(),MODE_STOPLEVEL)は0を返し、ストップロスの最小距離(ある場合)を調整するためにいくつかの実験をする必要があります。

kemal44:
これが売り買いのロジックを持つエキスパートです。

問題はブレイクイーブン・ストップロスです。

ブレイクイーブンとは、エントリーポイントから利益が5ピップアップしたら、ポートフォリオを守るためにストップロスをエントリーポイントに設定することです。

ありがとうございました。
 
mladen:
ストップロスの最小距離は、シンボルによって、ブローカーによって異なり、ある瞬間から別の瞬間に変わることがあるので、ブレークイーブンを設定する前に、次のようなチェックを追加してください(これは注文が買い注文の場合の一般的な例です、あなたは売り注文に非常に似てそれを書くことができます) 。
double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

追記:これはすべて、ブローカーがECNブローカーでない場合に有効です(最新の変更(ビルド419以降)により)。もしあなたのブローカーがECNブローカーであれば、最新のビルドではMarketInfo(Symbol(),MODE_STOPLEVEL)は0を返し、あなたはストップロスの最小距離(もしあれば)を調整するためにいくつかの実験をしなければならないでしょう。

ありがとうございます。

距離は良いアイデアです。

私はECNブローカーの規則について全く知らない、私のブローカーは地元の会社です。

 

...

kemal44

あなたのブローカーは、次のことを試してみてください:チェックする簡単な方法は、手動で注文を開こうとすることですが、そのときにストップロスおよび/またはテイクプロフィットを 設定してみてください。これらのフィールドは、オープンオーダーダイアログで(下の写真のように)無効になっているか、あなたがそれらに設定した0以外の値は、エラーが発生した場合、あなたのブローカーは、ブローカーの "ECN / STP "のタイプである場合。

kemal44:
ありがとうございます

距離は良いアイデアです。

私は、ECNブローカーのルールについて全く知らない、私のブローカーは、地元の会社です。
ファイル:
order_open.gif  22 kb
 
mladen:
kemal44

あなたのブローカーの - 次を試してみてください:チェックする簡単な方法は、手動で注文を開こうとすることですが、そのときにストップロスおよび/またはテイクプロフィットを設定しようとします。もしこれらのフィールドがオープンオーダーダイアログで(下の写真のように)無効になっているか、0以外の値を設定するとエラーが発生した場合、あなたのブローカーは、ブローカーの "ECN / STP "のタイプである。

私の取引ウィンドウは、上記の写真とまったく同じです。私は私のブローカーは、 "ECN / STP "のタイプであることを理解する。

ありがとうございます

ところで、MT4が提供するチャネル(StdDevなど)をインジケータやEAベースのコードで自動的にチャートに取り込むことは可能でしょうか?

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

 

...

kemal44

チャンネル」についてのご質問ですが、よく理解できませんが、試してみます。

メタトレーダーが提供する関数を使えば、どんなメタトレーダー内蔵のインジケータでも使用することができます。例えば、標準偏差の場合、以下のような構文になります。

。[ です。[/TD][。["width: 100%"]MA shift

[TR]

[TD]ma_method

[TD] - ["width: 100%"]MA method.、移動平均法。

TR]

[TD]applied_price[TD] - ["width: 100%"]Applied price.これは、 値のいずれかとなる。

TR]

[TD]shift[TD] - [TD="width: 100%"] 取得した値のインデックス(現在のバーから指定した期間分前に相対的にシフトする)
double iStdDev(

[/TD]

string symbol,int timeframe,int ma_period,int ma_shift,int ma_method,int applied_price,int shift)[/TD]

[/TR]

[/TABLE]

標準偏差を計算しその値を返します

パラメータ:

[TABLE="class: docparams"]

symbol[/TD] -
/TD]インジケータを計算するために使用されるべきデータのシンボル
NULLは現在のシンボルを意味する[/TD]

[/TR]

timeframe
-
/TD]時間軸
Timeframe列挙 値のいずれかを指定します。

TR]

ma_shift -
TD= .
TD=

TRは

TD=
移動平均法の列挙
インジケーターバッファから
.

サンプルです。

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);

_________________________________________

同様のことは、他のビルトインインディケーター(これらのもの:

他のインジケータ、スクリプト、EAからの関数呼び出しとして、これらのいずれかを使用することができます。

もし、内蔵されたインジケータの値をチャート上に表示させたい場合は、(通常のインジケータのように)描画バッファを使用する必要があります。EAには描画バッファがないので、EAから描画バッファを使って行うことはできません(オブジェクトを使う必要がありますが、それは全く別の話です)。

kemal44:
私の取引ウィンドウは、上記の写真とまったく同じです。私は私のボーカーが "ECN / STP "のタイプであることを理解しました。

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

一方で、MT4が提供するチャネル(StdDevなど)をインジケータやEAベースのコードで自動的にチャートに表示することは可能でしょうか?

事前にありがとうございます
 
mladen:
kemal44

チャンネル」についての質問がよくわからないのですが、試させてください。

メタトレーダーが提供する関数を使えば、どのようなメタトレーダー内蔵のインディケータでも使用することができます。例えば標準偏差の場合、以下のような構文になります。

。 です。。[TD="width: 100%"]MA shift

[TR]

[TD]ma_method[TD] - [TD="width: 100%"]MA method.、移動平均法。

TR]

[TD]applied_price[TD] - [TD="width: 100%"]Applied price.これは、 値のいずれかとなる。

TR]

[TD]shift[TD] - [TD="width: 100%"] 取得した値のインデックス(現在のバーから指定した期間分前に相対的にシフトする)
double iStdDev([/TD]string symbol,int timeframe,int ma_period,int ma_shift,int ma_method,int applied_price,int shift)[/TD]

[/TR]

[/TABLE]

標準偏差を計算しその値を返します

パラメータ:

[TABLE="class: docparams"]

symbol[/TD] -[/TD]インジケータを計算するために使用されるべきデータのシンボル
NULLは現在のシンボルを意味する[/TD]

[/TR]

timeframe[/TD] -[/TD]Timeframe
Timeframe列挙 値のいずれかを指定します。

TR]

ma_shift -.

TRは

移動平均法の列挙
インジケーターバッファから
.

サンプルです。

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0) とします。

_________________________________________

同様のことは、他のビルトインインディケーター(これらのもの:

つまり、他のインジケータ、スクリプト、EAからの関数呼び出しとして、これらのいずれかを使用することができます。

もし、内蔵されたインジケータの値をチャートに表示させたい場合は、(通常のインジケータのように)描画バッファを使用する必要があります。EAには描画バッファがないので、EAから描画バッファを使って表示することはできません(オブジェクトを使う必要がありますが、それは全く別の話です)。

Sdvチャンネルとは、以下のようなチャンネルを指します。

ところで、迅速な対応をありがとうございました。

ファイル:
xxx.gif  13 kb
 

パラボリック SARを使ったEA

パラボリックSARを使ったトレードのアイデアをお持ちの方はいらっしゃいますか?私はパラボリックSARを使ったEAを作りたいのですが、今まで良い結果が得られませんでした。そこで、パラボリックSARを使ったアイデアをお持ちの方は、ぜひとも参考にしてください。 最後に作ったEAはそれなりの利益を出すことができたが、エクイティはバランスよく同じになることはない。

ファイル: