無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
私たちのファンページに参加してください
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
lot lib - MetaTrader 4のためのライブラリ
- ビュー:
- 1223
- 評価:
- パブリッシュ済み:
- 2016.05.25 11:38
- アップデート済み:
- 2016.05.25 11:41
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
では、どれぐらいのリスクが自分に合っているかを考えましょう。答えがいっぱいありますが、正確な答えを出すのは難しいです。この問題を解決するために、lot_libライブラリを開発しました。
使い方:
- ダウンロードした lot_lib.mqhというファイルをMetaTrader\experts\include\フォルダに保存します。;
- EAには以下のコード行を追加します。:
// 最初には: #include <lot_lib.mqh> // init()関数に加えるのは: lotlib_PrevLots = 0.0; lotlib_PrevProfit = 0.0; // 各注文ごとの前にstart()関数に加えるのは: lotlib_OpenPriceLevel = Ask; // Ask価格の代わりに // エントリーの実数値 lotlib_StopLossLevel = Ask-StopLoss*Point; // Ask価格の代わりにStopLoss*Point(損切りの // 実数値 // 未決済ポジションが決まればstart()関数に加えるのは // のは: lotlib_PrevLots = OrderLots(); lotlib_PrevProfit = OrderProfit();- 注文が発注される際に、ロットサイズはLot()関数により求められます。つまり、ロットサイズを指定する変数の代わりにLot()を書きます;
- EAをコンパイルして使用できます。
注意: 同時に幾つかの未決済ポジションがある場合、変数otlib_PrevLotsと変数lotlib_PrevProfitに追加的に値を代入する必要があります。自分で代入する値を選択します。最後の決済ポジション、又は最後の未決済ポジションの値を選択できます。
外部変数:
- LotSizeVariant - ロットサイズを選択するバリアント番号;
- StartLot - 初期ロット (0から5までの番号を持つLotSizeVariantの為に);
- AddLot - ボリュームの増加 (1番号と2番号を持つLotSizeVariantの為に);
- KLot - 増加係数 (3番号と4番号を持つLotSizeVariantの為に);
- MaxRisk - 最大のリスク (5、6、11-17、31-37に設定されたLotSizeVariant);
- TrueProfitPoints - 利益の下の制限と損失の上の制限を表す値 (1、2、3、4に設定されたLotSizeVariant);
- BalanceUse - 使用される証拠金率。複数のEAを運用する場合、BalanceUseの値として100対EA数の割合を指定します。例えば、EAが3つあればBalanceUseの値は33となります。EAが4つあればBalanceUseの値は25となります。等々・・・(5、6、11-17、31-37に設定されたLotSizeVariant)。
LotSizeVariant:
0 - 変数StartLotに設定される一定のロットサイズ;
1 - 前のポジションが有利だった場合、利益がTrueProfitPointsを上回ります。ロットサイズをAddLot増やす、またはAddLotが0より小さいならばロットサイズをAddLot減らします。前のポジションが無益だった場合、StartLotが使用されます。;
2 - 前のポジションが無益である場合、ロットサイズをAddLot増やします。前のポジションが有利である場合、StartLotが設定されます。;
3 - 前のポジションが有利だった場合、利益がTrueProfitPointsを上回ります。ロットサイズをAddLot倍に増やします。前のポジションが無益である場合、StartLotが設定されます。;
4 - 前のポジションが無益である場合、ロットサイズをAddLot倍に増やします。前のポジションが有利である場合、StartLotが設定されます。;
5 - 未決済ポジションの合計最大リスクがMaxRiskに等しくなるようにロットサイズを定めます。;
6 - ロットサイズとして証拠金率を設定します。ロットサイズは変数MaxRiskにより管理されることになります。例えば、1000ドルを証拠金にして、MaxRiskに10を指定すれば、ユーロドルを0.1ロット取引します。15000ドルを証拠金にして、MaxRiskに5を指定すれば、ユーロドルを0.8ロット取引します。
7 - ロットサイズは証拠金残高の1パーセントと最後の20本足における値動きの平均振幅の割合に0.4を掛けて求められます。どこで見つけたのかも覚えていません。;
11-17 - 1~7の計算アルゴリズムと同じだけど、ロットサイズが5件により制限されます(未決済ポジションの合計最大リスクがMaxRiskに等しくなるようにロットサイズを定める)。;
21-27 - 1~7の計算アルゴリズムと同じだけど、ロットサイズの減少が不可能です。;
31-37 - 1~7の計算アルゴリズムと同じだけど、ロットサイズが5件により制限されますし、ロットサイズの減少が不可能です。つまり、ロットサイズが5件により制限される値より大きくなると、これは5件により制限される値まで減らされますが、ロットサイズが5件により制限される値より小さいならば、これは前に出した値に等しくさせます。;
100-128 - バリアントの組み合わせ(最適化に役立つ):
100 - 0
101 - 1 108 - 11 115 - 21 122 - 31
102 - 2 109 - 12 115 - 22 123 - 32
103 - 3 110 - 13 117 - 23 124 - 33
104 - 4 111 - 14 118 - 24 125 - 34
105 - 5 112 - 15 119 - 25 126 - 35
106 - 6 113 - 16 120 - 26 127 - 36
107 - 7 114 - 17 121 - 27 128 - 37
事前設定:
//---- ロットがMIN_LOTより小さくならない #define MIN_LOT 0.1 //---- ロットがMAX_LOTより大きくならない #define MAX_LOT 100 //---- エラーが発生した場合に //---- この関数は // DEFAULT_LOTを返す #define DEFAULT_LOT -1
使用例:
MACD Sampleをつけて、損切りを設定して、このライブラリを統合しました。その後で、LotSizeVariantを色々切り替えてテストしてみました。通貨ペアとしてユーロドルを選び、時間軸として1時間足を使いました。のバックテスト期間を2001年1月1日~2005年8月1日にしました。モデル化の質を90%に設定して「全ティック」モデルでバックテストを行いました。
この図では、幾つかの結果の例が表示されます。私なら、パラメータの最適化を行いませんでした。※図1は一定のロットサイズを示しています。
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/7749
ZH_Dynamic_Arrays_Lib
動的配列をエミュレーションするための関数のセットです。
Rotating text objectsオブジェクト操作のサンプル: オブジェクトの生成、プロパティの修正、チャートの再描写。
Gap indicator
このインディケータは、前のローソク足の終値と現在ローソク足の始値の間隔を表示します。
ADXdonインディケータADXdon。インディケータADXのもう一つのバージョンです。トレンドの強さを表示します。