ロットサイズ自動計算機能? - ページ 2

 
これは黄金です。 何時間も節約できました。U da man!
 

しかし、自分自身でコードを構築し、その結果、どのように動作するかを正確に知ることによって得られる自信を奪わないでください。 既存のコードを使用することは、「自分の力で立ち上がる」方法で知識を向上させる良い方法です。私は、初期の頃に例として使用するコードを持っていなかったら、ここにはいません。 しかし、釣りをすることを自分に課してください。そこから得られる価値は、あなたが行う他のすべてのことにあります。

 

フィリップ

これってどうなんだろう?

tradeVolume = AccountFreeMargin() * risk/100 / ( stopLossPoints * MarketInfo( Symbol(), MODE_TICKVALUE ) );

if(tradeVolume<MarketInfo(Symbol(),MODE_MINLOT)) tradeVolume=MarketInfo(Symbol(),MODE_MINLOT)とする。

if(tradeVolume>MarketInfo(Symbol(),MODE_MAXLOT)) tradeVolume=MarketInfo(Symbol(),MODE_MAXLOT).If(tradeVolume>MarketInfo(Symbol(),MODE_MAXLOT))

res=OrderSend(Symbol(),OP_BUY,tradeVolume,Ask,3,Ask - 0.2,Ask + 0.4,"",MAGICID,0,Red) とします。

 
Ricotter:

tradeVolume = AccountFreeMargin() * risk/100 / ( stopLossPoints * MarketInfo( Symbol(), MODE_TICKVALUE ) );


個人的にテストして計算を確認していませんが、計算が正しいと仮定すると、カウンター・カレンシーが口座の額面でもある通貨ペアにのみ 適用している場合は、正しく見えるでしょう。

例えば、あなたの口座が米ドルベースであれば、米ドルをカウンターとする通貨ペア(EURUSD、GBPUSDなど)にのみ、その取引量計算方法を適用することをお考えになってください。

私のコードでは、この通貨ペアのタイプは「タイプ2」として指定されています。

口座のドル建てを基準にしたシンボル(例えば口座がドル建ての場合、USDJPY)に適用すると、計算がおかしくなります。 また、クロスに適用しても同様にエラーになります。

私の他の投稿にあった "Analyze Currency Symbol" インクルードファイルの SymboType() コール関数を調べてみると、コメントされたヘッダーセクションで、異なるシンボルタイプの基礎と、なぜシンボルタイプによって異なるリスクとボリュームサイズ(ロットサイズ)を計算する必要があるのかをちょっとだけ説明してくれています。

しかし、もしあなたの計画がEURUSDとGBPUSDタイプのペアを取引することであるなら、あなたのコードは行くのに適しているように見えます!
 

フィリップさん、こんにちは。以前の投稿で、私が「JPYペアでコードに問題があったようですが、解決しましたか?これは解決されたのでしょうか?さて、その問題が再び私のところに現れたようです。私はあなたのルーチンを私のEAに正しく(間違いなく)追加し、MaxPercentEquityAtRisk= 1.0 (1%)を設定しました。私のデモ口座の 資本は約2300米ドルなので、どのような取引でも約23ドルのリスクは覚悟しています。私のEAは同じサイズのストップロスとプロフィットターゲットを使用しているので、もし私が23ドルのリスクを取っているなら、私は23ドルの利益を狙っているのです。とにかく、私のEAは昨夜2つのトレードを生成しました。

(1) EUR/JPYを買い、9.8ピップのストップロスと9.8ピップのプロフィットターゲットを設定しました。あなたのルーチンは0.80ロットのロットサイズを計算し(大きすぎる)、トレードは96.91ドルの10ピップの利益につながった。

(2) NZDJPYの買い、16.3ピップスストップロス、16.3ピップスプロフィットターゲット。あなたのルーチンは0.28ロットのロットサイズを計算し、トレードは-$56.56の損失となりました。


これらの取引は、私が2300ドルの資本の1%しかリスクを負っていないことを考えると、約23ドルの勝ちまたは23ドルの損失を与えるべきだったように思えますが、違いますか?


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

Shawn

 

これはPhillpの助けになるかもしれません。私が上で述べた両方の注文のロットサイズを計算した直後のあなたのコードからのプリント文のログは次のとおりです。


05:14:56 EURJPY,H1: BUY - EURJPY Max EquityAtRisk = $21.99 and Max Lotsize = 0.8085
05:14:56 EURJPY,H1: BUY - EURJPY Current EquityAtRisk = $21.76 and Current Lotsize = 0.8
05:14:56 EURJPY,H1: BUY - EURJPY MarketInfo(MODE_STOPLEVEL) = 30.0.00000
05:14:56 LibOrderReliable EURJPY,H1: loaded successfully
05:14:56 LibOrderReliable EURJPY,H1: OrderSendReliable v3.1:
05:14:56 LibOrderReliable EURJPY,H1: OrderSendReliable v3.1.XXX:- - - - - - - - - - - - - - - - - - - - - - - -
05:14:56 LibOrderReliable EURJPY,H1: OrderSendReliable v3.1:買いの試行 0.80000000ロット @114.78700000 sl:114.68900000 tp:114.88500000



09:02:36 NZDJPY,H1: BUY - NZDJPY Max EquityAtRisk = $23.29 and Max Lotsize = 0.2814
09:02:36 NZDJPY,H1: BUY - NZDJPY Current EquityAtRisk = $23.18 and Current Lotsize = 0.28
09:02:36 NZDJPY,H1: BUY - NZDJPY MarketInfo(MODE_STOPLEVEL) = 70.00000 9:02:36 MZDJPY, H2: NZDJPY MarketIf(MODE_STOPLEVEL) = 0.0000000000
09:02:36 LibOrderReliable NZDJPY,H1: loaded successfully
09:02:36 LibOrderReliable NZDJPY,H1: OrderSendReliable v3.1:
09:02:36 LibOrderReliable NZDJPY,H1: OrderSendReliable v3.1.XXX:- - - - - - - - - - - - - - - - - - - - - - -
09:02:36 LibOrderReliable NZDJPY,H1: OrderSendReliable v3.1.1:Attempted BUY STOP 0.28000000 lots @64.29700000 sl:64.13400000 tp:64.46000000
09:02:37 LibOrderReliable NZDJPY,H1: open #155492665 buy stop 0.28 NZDJPY at 64.297 sl:64.134 tp:64.460 ok
09:02:37 LibOrderReliable NZDJPY,H1: OrderSendReliable v3.1.チケットを送信しました。チケット番号155492665。BUYSTOP注文が 成功しました、詳細は以下の通りです。
09:02:37 LibOrderReliable NZDJPY,H1: #155492665 2010.11.04 13:02 buy stop 0.28 NZDJPY 64.297 64.134 64.460 64.197 0.00 0.00 0.00 NZDJPY73650016 73650016
09:02:37 LibOrderReliable NZDJPY,H1: OrderSendReliable v3.1.S. Order: Send Reliable v3.1:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

09:02:37 LibOrderReliable NZDJPY,H1: OrderSendReliable v3.1:


... Max EquityAtRiskの数字をうまく計算しているように見えますが... これらのロットサイズは、私の1%の希望するリスクよりはるかに大きな利益/損失となります。


ありがとうございます。

Shawn

 

あなたのブローカーは何ですか?

FXDDでは、これらのストップオーダーを入力すると、EURJPY (@25.66 EaR)のロットサイズは0.15になります。

2010.11.04 16:05:39 Assisted_Order_Script_2010.11.01 EURJPY,Daily: open #95896902 buy stop 0.15 EURJPY at 114.827 sl: 114.689 tp: 114.885 ok<br / translate="no"> 2010年です。11.04 16:05:38 Assisted_Order_Script_2010.11.01 EURJPY,Daily: attempted OP_BUYSTOP 0.15000000 lots @114.82700000 sl:114.68900000 tp:114.88500000
2010.11.04 16:05:38 Assisted_Order_Script_2010.11.01 EURJPY,Daily。現在のEquityAtRisk = $25.66、現在のLotsize = 0.15、Profit Target = $10.78 でProfit:Loss ratioは0.4:1です。
2010.11.04 16:05:38 Assisted_Order_Script_2010.11.01 EURJPY,Daily。最大許容EquityAtRisk = $25.84、最大計算ロットサイズ = 0.1511
2010.11.04 16:05:38 Assisted_Order_Script_2010.11.01 EURJPY,Dailyの入力です。Order_Type="BUY STOP"; OpenBidPrice=114.787; StopLossBidPrice=114.689; TakeProfitBidPrice=114.885; MaxPercentEquityAtRisk=0.5; MinLotOverRide=false.を指定。

IBFXで私は$26.77のEaRで0.16のロットサイズを得る(アカウントでより大きな開始の株式)。

2010.11.04 16:09:34 Assisted_Order_Script_2010.11.01 EURJPY,H4: open #94468219 buy stop 0.16 EURJPY at 114.824 sl: 114.689 tp: 114.885 ok
2010.11.04 16:09:34 Assisted_Order_Script_2010.11.01 EURJPY,H4: attempted OP_BUYSTOP 0.16000000 lots @114.82400000 sl:114.68900000 tp:114.8850000000
2010.11.04 16:09:34 Assisted_Order_Script_2010.11.01 EURJPY,H4: Current EquityAtRisk = $26.77 and Current Lotsize = 0.16 and Profit Target = $12.10 for the 0.5:1 Profit:Loss ratio
2010.11.04 16:09:33 Assisted_Order_Script_2010.11.01 EURJPY,H4: Max allowed EquityAtRisk = $27.19 and Max computed Lotsize = 0.1625。
2010.11.04 16:09:33 Assisted_Order_Script_2010.11.01 EURJPY,H4の入力です。Order_Type="BUY STOP"; OpenBidPrice=114.787; StopLossBidPrice=114.689; TakeProfitBidPrice=114.885; MaxPercentEquityAtRisk=0.5; MinLotOverRide=false.を入力。

NZDJPYで、私は0.09ロットのロットサイズとIBFXの24.53のEaRを取得します。

2010.11.04 16:11:59 Assisted_Order_Script_2010.11.01 NZDJPY,H4: open #94468343 buy stop 0.09 NZDJPY at 64.354 sl: 64.134 tp: 64.460 ok
2010.11.04 16:11:59 Assisted_Order_Script_2010.11.01 NZDJPY,H4: OP_BUYSTOP 0.09000000 lots @64.35400000 sl:64.13400000 tp:64.46000000 試みた。
2010.11.04 16:11:59 Assisted_Order_Script_2010.11.01 NZDJPY,H4: Current EquityAtRisk = $24.53 and Current Lotsize = 0.09 and Profit Target = $11.82 for the 0.5:1 Profit:Loss ratio
2010.11.04 16:11:59 Assisted_Order_Script_2010.11.01 NZDJPY,H4: Max allowed EquityAtRisk = $27.19 and Max computed Lotsize = 0.0998(最大許容ロットサイズ
2010.11.04 16:11:59 Assisted_Order_Script_2010.11.01 NZDJPY,H4の入力です。Order_Type="BUY STOP"; OpenBidPrice=64.297; StopLossBidPrice=64.134; TakeProfitBidPrice=64.46; MaxPercentEquityAtRisk=0.5; MinLotOverRide=false.を入力。

私が互換性をテストするブローカーは9社あり、これらのコードはAlpari(US), CitiFXPro, CMS, Forex.com (Gain Capital), FXCM, FXDD, IBFX, MIG Bank, and ODLで動作することが分かっています。

これらのブローカーは十分に異なっており、これらのブローカーにまたがるブローカー市場のパラメーターの違いを巧みに処理していることから、このコードはブローカーに依存しないと今まで私は満足してきました。

しかし、あなたのコードの実装が壊れていないことを前提にしているので、まずそれを排除しましょう。添付のスクリプトを試して、EURJPYにドラッグ&ドロップし、私が上記で行ったようにBUY STOPのパラメータを入力して、結果を教えてください。(デモ口座 での使用のみ)。

ファイル:
 

Phillipさん、ありがとうございます。私はAlpari UKのデモを使用しており、口座資本は US$2272.85です。OK、EURJPYの1時間足チャートにスクリプトを追加してみました(私のEAが使っているのと同じです)。何もしないし、保留中の注文も出さないので、「Experts」タブでエラーメッセージをチェックしました。


2010.11.04 20:39:15 Assisted_Order_Script_2010.11.01 EURJPY,H1: 削除されました。
2010.11.04 20:38:38 Assisted_Order_Script_2010.11.01 EURJPY,H1: ロードに成功しました。
2010.11.04 20:37:54 Assisted_Order_Script_2010.11.01 EURJPY,H1: 除去しました。
2010.11.04 20:37:54 Assisted_Order_Script_2010.11.01 EURJPY,H1: uninit reason 0
2010.11.04 20:37:54 Assisted_Order_Script_2010.11.01 EURJPY,H1: ゼロ除算
2010.11.04 20:37:53 Assisted_Order_Script_2010.11.01 EURJPY,H1: Max allowed EquityAtRisk = $22.73 and Max computed Lotsize = 0
2010.11.04 20:37:53 Assisted_Order_Script_2010.11.01 EURJPY,H1入力。Order_Type="BUY"; OpenBidPrice=115.827; StopLossBidPrice=115.689; TakeProfitBidPrice=115.885; MaxPercentEquityAtRisk=1; MinLotOverRide=false.を入力します。


ありがとうございます。

ショーン

 

注:今フィリップのスクリプトをもう一度試しましたが、同じ数値でMinLotOverrideをtrueに設定しました。Lotsize = 0.01、ストップロスやプロフィットターゲットの注文はなく、どちらも0.0000でした。

ありがとうございます。

ショーン

 

確認なのですが、口座の額面はUSDですよね?

今、Alpari UKをダウンロードして確認しています。

買いストップではなく、マーケットとして開く注文は、orderreliableルーチンによって完全に制御されています...非常に奇妙です。そのあたりも調査してみないといけませんね。

一つ気になるのは、この通知です。
"The leverage on ademo account is automatically set to the maximum leverage of 1:500."

レバレッジがロットサイズ計算に影響を与えるべきでないこと、それはIRCのフリーマージン計算にのみ影響するはずです。

Edit: nevermind, I see the platform actually doesn't default to this, it's 1:100 maximum leverage.