私たちのファンページに参加してください
- ビュー:
- 38
- 評価:
- パブリッシュ済み:
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
CalculateLot 機能は 、リスク管理の原則に基づいて取引ロットサイズを自動的に計算する ように設計されて います。これにより、トレーダーは、取引でリスクを負うことを許容する口座残高のパーセンテージを指定し、これに基づいて、最適なポジション量を決定することができます。
構文
double CalculateLot(double riskPercent, double stopLossPips);
パラメータ
Параметр Тип Описание riskPercent double Процент от текущего баланса счета, которым трейдер готов рискнуть. Указывается в абсолютном значении (например, 2.0 = 2% от баланса). stopLossPips double Расстояние до уровня Stop Loss в пунктах. Для 5-значных котировок указывается количество стандартных пунктов (например, 1000 = 1000 пунктов = 100 пипсов).
戻り値
この関数は、正規化されたロット数量 ( double)を返します :
-
数量ステップ ( VOLUME_STEP)の丸めルールに適合している ;
-
許容最大数量 ( VOLUME_MAX)を超えない ;
-
許容最小数量 ( VOLUME_MIN) を下回らない 。
計算された値が許容限界値を超える場合、関数は制限値(minLot または maxLot)を返します。
操作アルゴリズム
-
口座とシンボルのパラメータの取得
-
現在の残高 ( ACCOUNT_BALANCE)
-
ティック値 ( SYMBOL_TRADE_TICK_VALUE)
-
ロット変更の最小、最大、ステップ
-
-
預入通貨でのリスク量の計算
riskAmount = баланс × (риск% / 100) -
ロット数量の計算
lotSize = riskAmount / (stopLossPips × tickValue)
-
正規化と検証
-
直近ステップへの丸め ( VOLUME_STEP)
-
最小値と最大値の検証
-
使用例
例 1.エキスパートアドバイザーでの基本的な使用
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { //--- リスクは残高の1.5%、ストップロスは500ピップに設定する。 double lot = CalculateLot(1.5, 500); //--- ロットが正しく計算されているかチェックする。 if(lot > 0.0) { //--- 現在の価格を取得する double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); //--- レベルを計算する double sl = ask - 500 * _Point; double tp = ask + 1500 * _Point; //--- ポジションをオープンする trade.Buy(lot, _Symbol, ask, sl, tp); } }
例2.エラーチェックを伴うスクリプトでの使用
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { double riskPercent = 2.0; // 残高の2%のリスク double stopLossPips = 1000; // 損切り 1000ポイント double lot = CalculateLot(riskPercent, stopLossPips); //--- 計算に関する情報を出力する Print("===ロット計算結果 ==="); Print(「口座残高", AccountInfoDouble(ACCOUNT_BALANCE)); Print(「リスク", riskPercent); Print(「リスクの大きさ: ", AccountInfoDouble(ACCOUNT_BALANCE) * riskPercent / 100.0); Print(「ストップロス、ポイント", stopLossPips); Print(「ティッキングコスト: ", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)); Print(「計算ロット:", lot); Print("================================"); if(lot <= 0.0) { Alert("エラー:ロット計算に失敗しました。リスクとストップロスのパラメータを確認してください。"); } }
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/71010
ZigZag Support and Resistance Detection
ジグザグSNR検出は、ジグザグ・ピボット・ポイントを使用して支持線と抵抗線を識別します。
To Close All Open Trades of Different Symbols
技術的詳細 MQL5のOrderSendとTRADE_ACTION_DEALを使用し、現在のBid/Ask価格で即座にマーケットをクローズします。スリッページ許容範囲(10ポイント)、適切な出来高照合、マジックナンバー保存を含みます。執行中のインデックス・シフトを防止するため、ポジションを逆方向にループします。
Adaptive Moving Average (AMA)
適応移動平均線は、ノイズの影響を受けにくい移動平均線を作るときに使われ、トレンドを検知する際にラグが最小に抑えられるという特徴を持ちます。
Accelerator Oscillator (AC)
アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。
