ロットサイズ自動計算機能? - ページ 5 123456 新しいコメント 削除済み 2010.11.08 22:58 #41 こんにちは、フィリップ、ショーンです。前回話し合ったマイナーチェンジを行いましたが、JPYペアのロットサイズに関する問題はまだ出てきています。昨夜、私のEAを走らせたところ、3つのトレードが発生しました(私の口座残高は 2550米ドル、リスクは1%なので、1トレードあたり約25ドルのリスクです)。 (1) NZDJPYの売り、0.89ロット (2) AUDJPYの売り、0.23ロット (3) CADJPYの売り、0.94ロット AUDJPYのトレードのロットサイズは問題なさそうですが、他の2つはダメです。私は、あなたのものへの呼び出しの周りにいくつかのPrint文を埋め込んでいました。まず、この部分の私のEAのコードです。 if(Bid > SellPrice && SellPrice != 0.00) { CurrentOrderType=OP_SELL; CurrentStopLossPrice= FinalSellStopPrice; CurrentEquityAtRisk=(MaxPercentEquityAtRisk/100.0)*AccountBalance(); CurrentLotSize=LotSize(CurrentEquityAtRisk,CurrentStopLossPrice,CurrentOrderType,CurrentSymbolType,CurrentCounterPairForCross); Print("SELL - ", Symbol(), "AccountBalance = ", DoubleToStr(AccountBalance(),2), " Max EquityAtRisk = $",DoubleToStr(CurrentEquityAtRisk,2)," and Max Lotsize = ",DoubleToStr(CurrentLotSize,4)); CurrentLotSize=NormalizeLotSize(CurrentLotSize); Print("SELL - ", Symbol(), "Normalized LotSize is now = ", DoubleToStr(CurrentLotSize,4)); if(CurrentLotSize<MarketInfo(Symbol(),MODE_MINLOT)) CurrentLotSize=MarketInfo(Symbol(),MODE_MINLOT); if(CurrentLotSize>MarketInfo(Symbol(),MODE_MAXLOT)) CurrentLotSize=MarketInfo(Symbol(),MODE_MAXLOT); CurrentEquityAtRisk=EquityAtRisk(CurrentLotSize,CurrentStopLossPrice,CurrentOrderType,CurrentSymbolType,CurrentCounterPairForCross); Print("SELL - ", Symbol(), "Current EquityAtRisk = $",DoubleToStr(CurrentEquityAtRisk,2)," and Current Lotsize = ",DoubleToStr(CurrentLotSize,4)); Print("SELL - ", Symbol(), " MarketInfo(MODE_STOPLEVEL) = ",DoubleToStr(MarketInfo(Symbol(),MODE_STOPLEVEL),5)); //Check free margin if (AccountFreeMargin() < (1000 * CurrentLotSize)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } Ticket=OrderSendReliable2Step(Symbol(),OP_SELLSTOP,CurrentLotSize,FinalSellPrice,Slippage,CurrentStopLossPrice,FinalSellProfTarg,Symbol()+DoubleToStr(MagicNumber,0),MagicNumber,0,Red); if(Ticket<=0) Print("Error = ",GetLastError()); else { そして、ログから取り出したPrint文の出力が、上記の3つのトレードそれぞれについて、以下のとおりです。 05:16:10 DelphiEA NZDJPY,H1: SELL - NZDJPYAaccountBalance = 2550.90 Max EquityAtRisk = $25.51 and Max Lotsize = 0.8988 05:16:10 DelphiEA NZDJPY,H1: SELL - NZDJPYNormalized LotSize is now = 0.8900 05:16:10 DelphiEA NZDJPY,H1: SELL - NZDJPYYCurrent EquityAtRisk = $25.26 and Current Lotsize = 0.8900 05:16:10 DelphiEA NZDJPY,H1: SELL - NZDJPY MarketInfo(MODE_STOPLEVEL) = 70.00000 05:16:56 DelphiEA AUDJPY,H1: SELL - AUDJPYA AccountBalance = 2550.90 Max EquityAtRisk = $25.51 and Max Lotsize = 0.2376 05:16:56 DelphiEA AUDJPY,H1: SELL - AUDJPYNormalized LotSize is now = 0.2300 05:16:56 DelphiEA AUDJPY,H1: SELL - AUDJPYYCurrent EquityAtRisk = $24.69 and Current Lotsize = 0.2300 05:16:56 DelphiEA AUDJPY,H1: SELL - AUDJPY MarketInfo(MODE_STOPLEVEL) = 50.00000 07:13:53 DelphiEA CADJPY,H1: SELL - CADJPYA AccountBalance = 2550.90 Max EquityAtRisk = $25.51 and Max Lotsize = 0.9408 07:13:53 DelphiEA CADJPY,H1: SELL - CADJPYNormalized LotSize is now = 0.9400 07:13:53 DelphiEA CADJPY,H1: SELL - CADJPYYCurrent EquityAtRisk = $25.49 and Current Lotsize = 0.9400 07:13:53 DelphiEA CADJPY,H1: SELL - CADJPY MarketInfo(MODE_STOPLEVEL) = 60.00000 お役に立てれば幸いです! ああフィリップ、もう一つ - OrderSendReliable2Stepの小さなバグを見つけたと思う。誰に報告すればいいかわかりますか? ありがとうございます! ショーン automatic lot-size calculating function? バランスグラフを使用した戦略の最適化と、結果の「バランス+最大シャープレシオ」基準との比較 取引口座の分析 gordon 2010.11.08 22:59 #42 Ricotter: こいつはファイル履歴を使ってやっている。 https://www.mql5.com/en/articles/1493 新参者なので、この制限はMT5 Testerには存在しないことを明記しておきます。ご参考までに。 Ricotter 2010.11.09 02:14 #43 gordon: 初めての方なので、この制限はMT5 Testerには存在しないことをお伝えしておきます。ご参考までに。 ご忠告ありがとうございます。 MT5を使用しない方が良い理由はありますか? gordon 2010.11.09 08:39 #44 Ricotter: ヒントをありがとうございます。 MT5を使用してはいけない理由はありますか? もし、すぐにライブ取引をしたいのであれば、MT4にこだわる方が良いでしょう。しかし、ライブ取引をする前に何ヶ月かデモ取引をするつもりであれば、MT5を検討しても良いかもしれません。MT4より多くの改良がなされた新しいプラットフォームですが、より複雑で、まだ多くのブローカーにサポートされていません。ここにいくつかの良い情報があります ->http://www.100forexbrokers.com/mt5-metatrader5。 また、MQL5.comを チェックアウトするのもいいかもしれません。 削除済み 2010.11.09 14:05 #45 shawnh: こんにちは、フィリップ、ショーンです。前回話し合ったマイナーチェンジを行いましたが、JPYペアのロットサイズに関する問題はまだ残っています(ただし、あなたの最新版はまだ実装していません)。 あなたのコードではすべて「大丈夫そう」ですが、なぜあなたにそれが起こっているのか、まだわかりません。 私は新しいコードに変更することをお勧めします。 この時点では、あなたが今持っているものは何でも正しく動作していないので、何かを変更する必要があります。 orderlibの問題に関して、あなたがバグを誰に報告すべきかはわかりません。 Jesus Angeles 2010.12.02 09:27 #46 1005phillip: Step 1: この投稿で添付されたファイルを全てインクルードパスに入れる(...˶‾᷄ -̫ ‾᷅˵ ) Step 2: EAのトップに下記を追加し、添付ファイルに含まれるコール関数にアクセスできるようにする。 ステップ3:リスクへの資本の予算額に基づいてロットサイズを計算するために、以下を追加します。 MaxPercentEquityAtRiskをEAのどこかで定義したと仮定して、ストップがヒットした場合に取引ごとに完全な損失のリスクにさらす最大許容資本とする。このコードの部分は、まずopenpriceとstoplossprice(ピップではなく実際の市場価格、ブローカーに送る注文と同じもの)をもとに最大ロットを決定し、次に予算リスク資本を超えていない範囲でブローカーが受け入れる最大ポジションサイズを決定する。 ステップ4:計算結果をログに出力したり、注文コメントとして取引に追加したい場合は、次のように追加することもできます。 ステップ5: 注文を出す (ordersendreliable メソッドを使用) https://c.mql5.com/mql4/forum/2010/10/OrderReliable_2010.10.12.mqh こんにちは、1005phillipです。 2つのmqh(analyze...、tradepositionmanage...)で、下のインポートがないバージョンはありますか? これは、2つのmqhが両方ともそのimportを持っているので、コンパイラによって許可されていないためです。 //#include <stderror.mqh> (インクルード) <stderror.mqh //#include <stdlib.mqh> とする。 ...そのため、ファイルを編集して読み取り専用にすることはできません。 それとも、ファイルを編集して、そのインポートを削除することができるでしょうか? 削除済み 2010.12.02 14:36 #47 jcadong5: ...そうすれば、私はファイルを編集せず、それらを読み取り専用状態で維持することができます。それとも、ファイルを編集して、インポートを削除することができますか? どうぞ、お好きなように編集してください。 コンパイラは、重複していることに関するメモを記録しますが、それがすべてです。 Jesus Angeles 2010.12.02 15:18 #48 ありがとうございます。 削除済み 2010.12.03 22:27 #49 1005phillip: あなたのコードではすべて「問題ない」ように見えますが、なぜあなたにそれが起こっているのか、まだわかりません。 新しいコードに変更することをお勧めします。 この時点では、今あるものが正しく動作していないため、何かを変更する必要があります。 orderlibの問題に関しては、誰にバグを報告すればいいのかわかりません。 こんにちは、Phillip, Shawnです。数週間前に最新バージョンをインストールした後、すべてがうまく表示され、計算されたロットサイズがぴったり表示されたことを報告します。最新版が必要だったのでしょう。 本当にありがとうございます。 乾杯 Shawn 削除済み 2010.12.03 23:30 #50 どういたしまして。 そして、うまくいっていることを知らせてくれてありがとうございます。 以前のコードで何がうまくいかなかったのかはわかりません。 おそらく、ある種のバグで、リビジョンの間に私が知らず知らずのうちに修正したのでしょう。 おそらく1~2週間以内に、MT4でクロスカレンシーペアの バックテストに使用するためのフォールバック機能を持つ最新版を用意する予定です。 今現在、私のロットサイズコードを使用しながらクロスペアをバックテストしようとすると、バックテスターが必要なカウンターとベースペアの市場価格にアクセスできないため、バックテストは失敗します。(これはライブやフォワードテストでの問題ではなく、純粋にMT4のバックテスターの制限です) もしかしたら、あなたや他の人が役に立つかもしれないので、この橋を渡ったら、コードをアップします。 良い週末をお過ごしください。 - フィル 123456 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは、フィリップ、ショーンです。前回話し合ったマイナーチェンジを行いましたが、JPYペアのロットサイズに関する問題はまだ出てきています。昨夜、私のEAを走らせたところ、3つのトレードが発生しました(私の口座残高は 2550米ドル、リスクは1%なので、1トレードあたり約25ドルのリスクです)。
(1) NZDJPYの売り、0.89ロット
(2) AUDJPYの売り、0.23ロット
(3) CADJPYの売り、0.94ロット
AUDJPYのトレードのロットサイズは問題なさそうですが、他の2つはダメです。私は、あなたのものへの呼び出しの周りにいくつかのPrint文を埋め込んでいました。まず、この部分の私のEAのコードです。
そして、ログから取り出したPrint文の出力が、上記の3つのトレードそれぞれについて、以下のとおりです。
05:16:10 DelphiEA NZDJPY,H1: SELL - NZDJPYAaccountBalance = 2550.90 Max EquityAtRisk = $25.51 and Max Lotsize = 0.898805:16:10 DelphiEA NZDJPY,H1: SELL - NZDJPYNormalized LotSize is now = 0.8900
05:16:10 DelphiEA NZDJPY,H1: SELL - NZDJPYYCurrent EquityAtRisk = $25.26 and Current Lotsize = 0.8900
05:16:10 DelphiEA NZDJPY,H1: SELL - NZDJPY MarketInfo(MODE_STOPLEVEL) = 70.00000
05:16:56 DelphiEA AUDJPY,H1: SELL - AUDJPYA AccountBalance = 2550.90 Max EquityAtRisk = $25.51 and Max Lotsize = 0.2376
05:16:56 DelphiEA AUDJPY,H1: SELL - AUDJPYNormalized LotSize is now = 0.2300
05:16:56 DelphiEA AUDJPY,H1: SELL - AUDJPYYCurrent EquityAtRisk = $24.69 and Current Lotsize = 0.2300
05:16:56 DelphiEA AUDJPY,H1: SELL - AUDJPY MarketInfo(MODE_STOPLEVEL) = 50.00000
07:13:53 DelphiEA CADJPY,H1: SELL - CADJPYA AccountBalance = 2550.90 Max EquityAtRisk = $25.51 and Max Lotsize = 0.9408
07:13:53 DelphiEA CADJPY,H1: SELL - CADJPYNormalized LotSize is now = 0.9400
07:13:53 DelphiEA CADJPY,H1: SELL - CADJPYYCurrent EquityAtRisk = $25.49 and Current Lotsize = 0.9400
07:13:53 DelphiEA CADJPY,H1: SELL - CADJPY MarketInfo(MODE_STOPLEVEL) = 60.00000
お役に立てれば幸いです!
ああフィリップ、もう一つ - OrderSendReliable2Stepの小さなバグを見つけたと思う。誰に報告すればいいかわかりますか?
ありがとうございます!
ショーン
こいつはファイル履歴を使ってやっている。
https://www.mql5.com/en/articles/1493
新参者なので、この制限はMT5 Testerには存在しないことを明記しておきます。ご参考までに。
初めての方なので、この制限はMT5 Testerには存在しないことをお伝えしておきます。ご参考までに。
ご忠告ありがとうございます。 MT5を使用しない方が良い理由はありますか?
ヒントをありがとうございます。 MT5を使用してはいけない理由はありますか?
こんにちは、フィリップ、ショーンです。前回話し合ったマイナーチェンジを行いましたが、JPYペアのロットサイズに関する問題はまだ残っています(ただし、あなたの最新版はまだ実装していません)。
私は新しいコードに変更することをお勧めします。 この時点では、あなたが今持っているものは何でも正しく動作していないので、何かを変更する必要があります。
orderlibの問題に関して、あなたがバグを誰に報告すべきかはわかりません。
Step 1: この投稿で添付されたファイルを全てインクルードパスに入れる(...˶‾᷄ -̫ ‾᷅˵ )
Step 2: EAのトップに下記を追加し、添付ファイルに含まれるコール関数にアクセスできるようにする。
ステップ3:リスクへの資本の予算額に基づいてロットサイズを計算するために、以下を追加します。
MaxPercentEquityAtRiskをEAのどこかで定義したと仮定して、ストップがヒットした場合に取引ごとに完全な損失のリスクにさらす最大許容資本とする。このコードの部分は、まずopenpriceとstoplossprice(ピップではなく実際の市場価格、ブローカーに送る注文と同じもの)をもとに最大ロットを決定し、次に予算リスク資本を超えていない範囲でブローカーが受け入れる最大ポジションサイズを決定する。
ステップ4:計算結果をログに出力したり、注文コメントとして取引に追加したい場合は、次のように追加することもできます。
ステップ5: 注文を出す (ordersendreliable メソッドを使用)
https://c.mql5.com/mql4/forum/2010/10/OrderReliable_2010.10.12.mqh
こんにちは、1005phillipです。
2つのmqh(analyze...、tradepositionmanage...)で、下のインポートがないバージョンはありますか? これは、2つのmqhが両方ともそのimportを持っているので、コンパイラによって許可されていないためです。
//#include <stderror.mqh> (インクルード) <stderror.mqh
//#include <stdlib.mqh> とする。
...そのため、ファイルを編集して読み取り専用にすることはできません。 それとも、ファイルを編集して、そのインポートを削除することができるでしょうか?
...そうすれば、私はファイルを編集せず、それらを読み取り専用状態で維持することができます。それとも、ファイルを編集して、インポートを削除することができますか?
どうぞ、お好きなように編集してください。 コンパイラは、重複していることに関するメモを記録しますが、それがすべてです。
あなたのコードではすべて「問題ない」ように見えますが、なぜあなたにそれが起こっているのか、まだわかりません。
新しいコードに変更することをお勧めします。 この時点では、今あるものが正しく動作していないため、何かを変更する必要があります。
orderlibの問題に関しては、誰にバグを報告すればいいのかわかりません。
こんにちは、Phillip, Shawnです。数週間前に最新バージョンをインストールした後、すべてがうまく表示され、計算されたロットサイズがぴったり表示されたことを報告します。最新版が必要だったのでしょう。
本当にありがとうございます。
乾杯
Shawn
どういたしまして。 そして、うまくいっていることを知らせてくれてありがとうございます。 以前のコードで何がうまくいかなかったのかはわかりません。 おそらく、ある種のバグで、リビジョンの間に私が知らず知らずのうちに修正したのでしょう。
おそらく1~2週間以内に、MT4でクロスカレンシーペアの バックテストに使用するためのフォールバック機能を持つ最新版を用意する予定です。 今現在、私のロットサイズコードを使用しながらクロスペアをバックテストしようとすると、バックテスターが必要なカウンターとベースペアの市場価格にアクセスできないため、バックテストは失敗します。(これはライブやフォワードテストでの問題ではなく、純粋にMT4のバックテスターの制限です)
もしかしたら、あなたや他の人が役に立つかもしれないので、この橋を渡ったら、コードをアップします。
良い週末をお過ごしください。
- フィル