5桁検出 - ページ 5

 
jjc:
...自分のためだけでなく、他の人が使うためのシステムを構築する場合、ピップ単位で値を入力できることは、使いやすさを考える上で重要なポイントになります。平均的なパンターは50ピップの意味を知っていますが、0.0005や0.05ではなく0.005の値を意味しているかどうか、かなり考えなければならず、ダブルチェックをしなければなりません。

私が言ったのは、「商用標準のプログラムを開発し、ユーザーが正確にいくらドルをリスクにさらすかを柔軟に設定できるようにしたい開発者にとって、その定義は重要だと思われる」ということです。平均的なパンターが50ピップの意味を知っていることについては、私は同意しかねます。IMOの人々は、ドルまたは基本 通貨の標準単位で考えるのが好きです。私はピップ/ポイントの定義について行ったり来たりした私の個人的な経験を挙げたいのですが、長くなってしまうかもしれません。

あなたがベルトの下に外国為替の経験の年とスーパープログラマでない場合は、エンドユーザーのための普遍的な適用可能な商用プログラムをコーディングしようとすることに意味がありません。EAを購入する人は、それが利益をもたらすものであることを何よりも期待します。そして、その次に期待するのは、想像以上に柔軟なプログラムであることです。例えば、週末にすべての注文をクローズするコマンドや、私がリスクを負いたい金額を指定できるなどです。ご存知のように、一つの時間枠や通貨に固定することなく、収益性の高いEAをプログラムすることは十分に難しいことです。

しかし、ここでは、2%のリスクと「週末に取引しない」ということを聞いた平均的なジョーのための商業EAをプログラムしようとしています。そして、GBP/JPYで20ドルの損失を指定したいのですが、彼らの基本通貨は米ドルです。システムはATRのパーセンテージを使うように設計されており、それが何ピップ/ポイントまたは何ドルであろうとも。今、システム全体は、エンドユーザーの期待#1利益を満たさないので、壊れています。しかし、誰かがで遊ぶためにエンドユーザーのためのツールを作っている場合は、それは別の話です。

IMOは、私/私自身/個人が、私のおばさんやリルブラザーに取引させたいシステムを作るつもりだった場合。私は、彼らが指定することができる唯一のものはリスク%であり、プログラムが動作するように設計されていない他の周辺は拒否されるように、できるだけ柔軟性のないようにそれを作るだろう、例えば、間違った時間枠や通貨を指定します。確かに、市販のシステムの多くは、ユーザーがPipsで指定できるようになっています。エンドユーザーが「100ドルのリスクしか取りたくなかったのに、1000ドルになってしまった」というような間違いを犯しても、プログラマーは責任を取れません。彼は100ピップのストップを入力しましたが、レバレッジは1000:1でした。プログラミングの中で、あらゆる曲がり角や警告に注意を払わない限り、それは絶望的です。

 
andydcoles:

MQL4がPipsを使用するのは、Order RequestでSpread値をコーディングする場合のみです。それ以外は全てレートでの指定となります。T/P、S/Lなどの入力パラメータとして通貨レートの差を使用することも一つの方法です。例えば、50PipのS/Lには0.0050を指定します。これは桁数に関係なく機能し、Symbol()でクォート通貨として「JPY」を検出する場合にのみ100倍でスケーリングする必要があります。これは21の主要ペア(USD、EUR、GBP、JPY、CHF、CAD、AUDの組み合わせすべて)とマイナーペア(スプレッドが高いためほとんど取引されない)でも実行可能です。もし、本当に「防弾」を心配するのであれば、入力パラメータとして通貨の文字列と倍率を供給することができます(JPYと100のように)。これは、異なるブローカーでエキゾチックにも拡張することができます。

私は、ほとんどのMQL4コーダーにとって、これはほとんど無言のポイントであると思います。そのアルゴリズムに対抗するために市場が調整される可能性が高いので、それを売ったり手放したりしたいと思う人はほとんどいないでしょう。

Andyさん、ご返事ありがとうございます。しかし、私は今、この機能を 解決しました。前回の投稿を振り返ってみると、当時はダムにこだわっていたようなところがありますね:)。私は自分のコードを「防弾」するよりも、PointやTickSizeなどの基礎的な計算をより探していたのだと思います。7bitは、プログラム的に5桁の価格を検出する方法を探して、このスレッドを立ち上げました。その結果、MarketInfo-sの定義済み変数の定義を見つける、または探索するために成長したのです。改めて、ご意見をありがとうございました。
~カメオ

 

If you are building a system for other people to use, not just for yourself, then the ability to enter values in pips is a major ease-of-use consideration. The average punter knows what they mean by 50 pips, but has to think quite a lot, and double-check, whether they mean a value of 0.005 rather than 0.0005 or 0.05 or whatever. The ability to enter parameters in pips matches how most end-users think in the forex world, and reduces errors. It also offers the prospect of being able to use the same parameter values on 2/3 and 4/5 digit symbols. I don't have much exposure to the mass-market commercial EAs, but I've never seen one where such parameters were entered as a price differential rather than a pip value.

Jjc : 同じ考えの人がいてくれてうれしいよ。)僕はいつでも使いやすさとエラーの減少を優先しますよ :)

これです。個人的にはpipsではなく、ポイントで作業しています。すべての価格データはポイントで与えられます。2つの価格値の差はポイントで表示されます。私のストップロスやエグジットポイントはすべてポイントで、特定の市場価格なのです。ピップスという概念は興味深いものですが、ここにいるほとんどの人が証明しているように、ピップスの概念をポイントの概念に橋渡ししようとすると、厳密さと堅牢さを失いますが、何のために?[...]

フィル : 価格パラメーターの計算方法について、あなたや他の人たちのやり方を評価することができます。私たちには私たちの好みがありますし、必要ないと思えば変える必要はありません。私の目的は、ご存知のように、MarketInfoの基礎となる計算を様々な商品やブローカーで使用するために探求することです。価格を使用する方法は、確かに実行可能な堅牢な方法です。

もし、あなたが何年ものFXの経験を持つスーパープログラマーでないなら、エンドユーザーのために普遍的に適用可能な商用プログラムをコーディングしようとしても無駄でしょう。EAを購入する人は、それが利益をもたらすものであることを何よりも期待します。そして、その次に期待するのは、想像以上に柔軟なプログラムであることです。例えば、週末にすべての注文をクローズするコマンドや、私がリスクを負いたい金額を指定できるなどです。1つの時間枠や通貨に固定されることなく、収益性の高いEAをプログラムするのはとても難しいことなのは周知の通りだ。

Ubzen : 笑えますね。あなたは「スーパープログラマー」である必要はないのです。信じてください。可能性はあるけれど、僕にとってこのソリューションは、商業的なプログラムに使われたり、「想像を超える柔軟性」が必要なわけではないんだ。私はただ、パラメータを調整したりダブルチェックしたりする必要なしに、自分の戦略を異なるプラットフォームや機器でテストしたいだけなのです。

ピップス対ドルについて、あなたがよく知っているであろう例えを提示してもいいですか。

私が新しいカジノでギャンブルをしたいとします。新しいカジノでギャンブルをしたいとします。私は5000ドルの資金を持参し、資金の2パーセントを賭けるつもりです。しかし、ハウスはポイントでチップを提供します。賭け金はポイントチップに変換され、0.0001、0.0005、0.001などの単位で表示される。しかも、次のテーブルでは、前のテーブルの10倍のチップを要求され、さらにチップの色も簡単にはわからない。ちょっと大げさですが......(笑)、言いたいことはわかりますよね。)ドルや基本通貨は 普遍的なものではありませんが、pipsは普遍的なものです。Pipsは分数ではないので簡単で、どんなタイプのチャートと商品でも、x pipsの利益/損失を見れば、IMHOはすぐにそれらを評価し、比較することができるのです。

PS : 私はこの投稿を何度も編集・追加しました...なぜ私の投稿のいくつかを再読すると、時々うんざりした気分になるのでしょうか?

 

現在、以下の機能を 使用していますが、異なるブローカーや商品間で使用可能です。

double vPoint; 
if(Digits == 2 || Digits == 4) vPoint = Point; else
if(Digits == 3 || Digits == 5) vPoint = Point*10; // I use this for my indies; call once on init() & use where Point supposed to be used in start() 

double Poin() 
{ 
   int d = Digits;
   switch(d){
   case 2 : {return(Point); break;}
   case 4 : {return(Point); break; }
   case 3 : {return(Point*10); break;}
   case 5 : {return(Point*10); break:}
   default : return;
} // I just come up with this. Untested but should be ok/robust. To be used to replace Point for trade parameters calculations. 

乾杯、〜カメオ

 

最近、これが必要になったので、コード化しました。これが私のソリューションです。

//私の観察によると、原資産の1%は約100ピップスです。

//a 'ポイント'は最小単位の増分です。

//そこで、原資産の1%に対して10の累乗となるポイント数を計算します。

//そのポイント数は100ピップスです。

double AmountPer100Pips()

{

int k=3;

while (MathRound((Bid*0.01)/(Point*MathPow(10, k)))==0)

{

k--;

}

//Comment("1%=", DoubleToStr(Bid*0.01, 5), "-", DoubleToStr(Point*MathPow(10, k), 5), " per 100 pips").1%は、100ピップスあたり。

return(Point*MathPow(10, k));

}

 
ubzen:

...「2%のリスク」と「週末は取引しない」ということを聞いたアベレージジョー...


トレンドは友達」を忘れている - それをレンジ戦略に組み込んでみたら...!

アドオンや「あると便利」な機能は、EAが収益を上げるために必要な戦略には役立たず、しばしば害になることがあるのは、まったくその通りです。

-BB-

 
jesuscheung:

最近、これが必要になったので、コーディングしてみました。


このコードは、0.01Ticksより小さい通貨に対してのみ機能します。Dow (TickSize 1) や Ger30 (TickSize 0.5) を入れてもうまくいきません。
 

cameofx新しいカジノでギャンブルをしたいとします。5000ドルの資金を持参し、資金の2パーセントを賭けるつもりです。しかし、ハウスはポイントでチップを提供します。賭け金はポイントチップに変換され、0.0001、0.0005、0.001などの単位で表示されます。しかも、次のテーブルでは、前のテーブルの10倍のチップを要求され、さらにチップの色も簡単にはわからない。ちょっと大げさですが......(笑)、言いたいことはわかりますよね。)ドルや基本通貨は 普遍的なものではありませんが、pipsは普遍的なものです。Pipsは分数ではないので簡単で、どのようなタイプのチャートと機器を見ても、x pipsの利益/損失を見れば、IMHOはすぐにそれらを評価し、比較することができます。

うわぁ、カジノに例えるなんて。完全に見逃してました(笑)。OK、それなら理解できる。平均的なジョーは新しいカジノに入り、5000ドルではなく、単純に100ドルと言うことにしましょう。彼はゴージャスなディーラーに100ドルのベンジャミン・フランクリンを手渡すと、素敵なディーラーは丁寧に「お客様、お戻しはどのようになさいますか、レッド、グリーン、それともハーフ&ハーフで?アベレージ・ジョーは完全に混乱しました。次の質問は、「レッド、グリーン、ハーフ&ハーフはいくらですか」。ここで、彼女は微笑み、髪を横に投げ、肩を落とし、ため息をつきます。もし私がアベレージ・ジョーの隣に座っていたら、コックテールのウェイトレスを探し回ります。彼女はトレイに手を伸ばし、チップを持ち上げて「これはレッドチップ、0.0001ポイントの価値があります」と宣言し始めた......(なんだ!ここは本物のカジノか、でもまあいいか)。アベレージ・ジョーはまだ混乱している。でも、ドルではいくらなの?そして彼女は、「5ドルです」「緑は25ドルです」「ハーフ&ハーフは緑2枚と赤10枚という意味です」と答えます。

平均的なジョーは色にこだわるので、ポイントは完全に窓から消えてしまいます。猿でも色を見分けることができるのです。アベレージ・ジョーはカッコつけて「じゃあ、半分半分で...プリティ・マンマ」と言うのです。その隣にいる僕は、笑いをこらえるのに精一杯の笑顔だ。とにかく、賭けの時間になって、Average Joeはできるだけ長くこのテーブルにいたい、と2%考えている。O_o、彼は2ドル必要なので、ディーラーに「2ドルのチップはありますか」と尋ねると、彼女は「はい、白は1ドル、ピンクは2.50ドルですが、いかがでしょう」と言いました。彼は「はい」と答えました。彼女は「2ドルの赤を渡してくれたら、白を10枚あげる」と言った(彼女はトレイの中の白を全部渡すつもりはない...彼女はそれを換金する必要があるから...でも、彼女はあなたがチップを始めようとしていることを期待している)。

よし!またベッティングに戻ろう。ここで、アベレージ・ジョーはテーブルに2枚の白チップを置きました。これでディーラーは固まりました。彼女は彼を見て、看板を見えるようにひねって、「最低5ドルのテーブルです」と言いました。 「このカジノの最低テーブルは3ドルのテーブルです。2ドル対3ドル...ゴージャス対ファビリオ...)「いや、カードで遊ぼう」とアベレージ・ジョーは少し考え、2枚の白を引き、2枚の赤をそこに投げ入れました。

もし、これが日本のカジノだったら、1点の価値を説明するのに時間がかかるだけで、形式は同じだっただろう。

 
1005phillip:

これです。個人的にはpipsではなく、ポイントで作業しています。すべての価格データはポイントで提供されます。

つまり、ブローカーを変えるたびに(あるいは数ヶ月前のIBFXのようにブローカーが突然変わる場合) それに応じてすべてのEAのパラメータを 変更することを忘れてはなりません。例えば、スリッページが3ポイントとか30ポイントとか。

そして、もし一つを忘れたり、最悪の場合、間違った方法で変更した場合、どれだけの損失を出すことになるでしょうか。

パーセンテージではないタイプのパラメータをpipsで定義し、必要に応じてポイントまたはダブルに変換する方がはるかに簡単です。

 
WHRoeder:

つまり、ブローカーを変えるたびに(あるいは数ヶ月前のIBFXのようにブローカーが突然変わった場合) それに応じてすべてのEAのパラメータを変更することを忘れてはいけません。例えば、スリッページ、3ポイント、30ポイントなど。

そして、もし一つを忘れたり、最悪の場合、間違った方法で変更した場合、どれだけの損失を出すことになるでしょうか。

パーセンテージではないタイプのパラメータをpipsで定義し、必要に応じてポイントまたはダブルに変換する方がはるかに簡単です。


実はその逆なんです。 私のEAは、基本的にどのMT4ブローカーにも、どのような桁数の組み合わせにも対応できるよう汎用的にコード化されており、取引の仕組みや戦略はブローカー固有のパラメータに左右されません。 しかし、"pips "のような明確でないパラメータでプログラミングを始めると、トラブルの元となります。

私が面白いと思うのは、ストップロスやテイクプロフィットを決定するために、指標や市場価格を含む数学的計算に依存する戦略をすでに持っている場合、ATRやRSI、抵抗線など、基本的に「30ピップの固定トレーリングストップが欲しい」というつまらないもの以外は、そもそもピップで作業する必要が全くない、ということです。

25pipのテイクプロフィットや50pipのストップロスなど、固定pipで行うことは私には馬鹿げているとしか思えません。 それはすべて割合の動き、抵抗レベルなどの上にあります。 ピップスではなく、価格によって定義されるものです。

私の意見ですが、全く欠陥があるかもしれません。

(PS - IBFXの変更の例は完璧な例で、私のEAはIBFXが変更したことを気にしていませんでした。 もう一つはFXDDで、この夏、デモサーバーの一つで5桁に変更されましたが、四半期ごとの数字を確認し、価格フィードが変更されたことに気づくまで、このことに気づかなかったし、それが起こったことも知りませんでした)