コーディングの方法は? - ページ 55

 

同じ条件で複数の注文を出すためにコピーするEAが必要です。

こんにちは。

保留中の 注文をコピーして、全く同じ条件で複数回出すEAを探しています。

例えば、USD/JPYの115.00のエントリーストップ売り1ロットの注文を保留にしていて、同じ注文を5つ持ちたいとします。

同じ条件で複数のポジションを持つのではなく、単に取引サイズを大きくしたいだけなのです。

このようなことをやってくれるEAはないでしょうか?

また、e-Trailing.mq4を試したのですが、複数の注文にトレーリングストップをかけることができません。

複数の新規注文に対して、現在値から5pipsのところにトレーリングストップを置きたいのです。

何か良いEAがあれば教えてください。

回答

 

おそらく「ポイント」は、値動きの粒度が何であるかを示しており、EURJPYの例では0.001となり、「インテグラル・ピップス」(0.01)の考え方が何であるかは分からないのでは?それをテストすることができます。もしそうなら、計算の際に「ポイント」の代わりに「(ポイント*10)」を使う必要があるかもしれません。

あるいは、彼らの言う「pips」は、あなたが慣れ親しんでいる「pips」の1/10であると、単純に受け止めてもいいのではないでしょうか?例えば、OrderSendの「slippage」パラメータは どうなるのでしょうか?それは通常のpipsなのでしょうか、それともピペットなのでしょうか?

 
ralph.ronnquist:
おそらく、「ポイント」は値動きの粒度を示すもので、EURJPYの例では0.001となり、「整数ピップ」(0.01)の考え方とは異なるのではないでしょうか。それをテストすることができます。もしそうなら、計算の際に「ポイント」の代わりに「(ポイント*10)」を使う必要があるかもしれません。 あるいは、彼らが言う「pips」は、あなたが慣れている「pips」の10分の1であると単純に受け入れることができるかもしれませんね。例えば、OrderSendの「slippage」パラメータはどうなるのでしょうか?それは通常のpipsなのでしょうか、それともピペットなのでしょうか?

回答ありがとうございます - 私はコーダーではないので、これは少し外国です。 Point*10 を試してみたところ、スプレッドが 410 pips と表示されました。 また、Point/10 を試してみたところ、スプレッドが 4.0 pips と表示されましたが、これは 4.1 pips であるべき実際の数値を「四捨五入」しているように思われます。

注文を送信するスクリプトがあるので、Point*10 を使って修正しなければなりませんが、このスプレッドの読み取りを正しく行うことができないようです。

多くのMT4ブローカーがプラットフォームでfractional pipコンセプトを採用するかもしれないと聞いているので、これは多くのインディケータ、スクリプト、EAにとって問題になりそうです。

他に何かアドバイスがあれば、お願いします。

ダン

 

こんにちは。

NorthFinanceがもう一桁追加したので、EUR/USDは1.47125です。

 
FXTradepro:
回答ありがとうございます - 私はコーダーではないので、これは私にとって少し外国です。 私はPoint*10を試しましたが、これはスプレッドが410pipsを読むようにしました。 また、Point/10 を試したところ、スプレッドが 4.0 pips と表示されましたが、これは 4.1 pips であるべき実際の数値から「四捨五入」しているように見えます。

Point*10を使って改造した注文送信スクリプトがあるのですが、このスプレッドの読み取りを正しく行うことができないようです。

多くのMT4ブローカーがプラットフォームにfractional pipコンセプトを採用するかもしれないと聞いているので、これは多くのインディケータ、スクリプト、EAにとって問題になりそうだと思います。

他に何かアドバイスがあれば、お願いします。

ダン

ご心配なく。私の理解では、「ピップ」という用語は、取引サイズに関連する定義が拡大しており、1ロットの取引の1ピップの動きが既知の値の量に対応することを意味します。MT4の「ポイント」という用語は、より厳密に言うと、値動きの粒度、すなわち2つの価格の間に存在し得る最小の差、あるいはすべてのBid/Ask価格はポイントのN倍の整数であることを意味します。

これまで、MT4では、pipsとPointの間に1対1の変換がありましたが、もはやそのようなことはありません。そのため、「スプレッド」変数をpips単位にしたい場合は、これまで「Point」を使用していた場所に「(Point*10)」という表現を使用しなければなりません。この式には二重引用符はありませんが、括弧はあります。

コード内で非常に明確にするために、適切なpips測定を提供する関数を 追加することもできます。

double pips() { return ( Point * 10.0 ); }[/PHP]

and in that case, you would replace "Point" at all other places with the function call "pips()".

Alternatively, you let the program work with the Point granularity, and merely translate to pips when the spread value is presented. I.e. forget about using the pips() function above, but have the following function for translating a Points value to be a pips value:

double pips(int points) { return ( 1.0 * points / 10.0 ); }

Then the spread value component in the ObjectSetText call would be like:

[PHP]DoubleToStr( pips( Spread ), 1 )
 

Pointに関する問題

以下のコードで、Point を myPoint に置き換えてみます。

まず、グローバル変数を宣言します。

double myPoint を宣言します。

そして、Init関数 内に次の行を追加します。

myPoint = SetPoint();

そして、次の関数を追加します。

double SetPoint()

{

double mPoint;

if (桁数 < 4)

mPoint = 0.01とする。

さもなければ

mPoint = 0.0001。

return(mPoint);

}

これは、ブローカーが端数pipsを使用しているかどうかに関係なく動作します。

ロバート

 

助けてください

どなたか助けてください。

私はトレーリングストップでエキスパート20_200をしたい。

誰でも入れてください。

ファイル:
 

お願い

PANNEK:
あなたは、任意のボディは私を助けることができますか?

エキスパート20_200をトレーリングストップ付きでお願いします。

誰でも入れてください。

少し助けて

 
MrPip:
私は現在、次のコードを使用して、Pointの出現箇所をすべてmyPointに置き換えています。

まず、グローバル変数を宣言します。

double myPoint を宣言します。

そして、Init関数内に次の行を追加します。

myPoint = SetPoint();

次に、次の関数を追加します。

double SetPoint()

{

double mPoint;

if (桁数 < 4)

mPoint = 0.01とする。

さもなければ

mPoint = 0.0001。

return(mPoint);

}

これは、ブローカーが小数ピップを使用しているかどうかに関係なく動作します。

ロバート

本当に関数は 必要なく、init()関数に入れるだけで十分です。

myPoint = 0.0001; if (Digits < 4) myPoint = 0.01;
 

ニューデジタル

PANNEK:
は、任意のボディは私を助けることができますか?

トレーリングストップ付のエキスパート20_200を希望します。

誰でも入れてください。

NEWDIGITALを助けてください

ファイル: