MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 565 1...558559560561562563564565566567568569570571572...1953 新しいコメント 削除済み 2018.06.10 02:35 #5641 PolarSeaman:コードで代用したのは まで が、役に立たなかった)それしか気づかなかったのは残念です) 削除済み 2018.06.10 02:36 #5642 Alekseu Fedotov:SEEK_ENDフラグ付きのFileSeek()を使用すると便利です。<ありがとうございます! 試してみます。 Alekseu Fedotov 2018.06.10 07:10 #5643 YanSay:こんばんは!(^o^)保証金の割合に基づいて取引のロットを計算するための普遍的な(異なる商品用の)コードを追加する方法に困惑しています。こんな感じで作りました。プライス(始 値)とSL(ストップロス)は別々に計算されます。クォート通貨がドルであるペア(例:EURUSD)、インデックスSPX500および金については、すべて正しく計算されますが、ドルがクォートの最初のペア(例:USDJPY)については動作しません。私が見逃しているものをアドバイスしてください。ノーマライゼーションに注目 Digits変数には、現在のチャートシンボルの価格精度を決定する小数点以下の桁数が格納されます。 YanSay 2018.06.10 15:33 #5644 Alekseu Fedotov:正規化に注意変数_Digitsには、現在のチャートシンボル価格の精度を決定する小数点以下の桁数が格納されます。ありがとうございました。ここでは、そのやり直しの様子を紹介します。 input double MaximumRisk=0.02; //Риск в сделке от депозита //1ый вариант {Lots = NormalizeDouble(((AccountBalance()*MaximumRisk)/((MathAbs(Price-SL))/Point)/((MarketInfo(Symbol(),MODE_LOTSIZE)*(MarketInfo(Symbol(),MODE_ASK)+Point)) -(MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_ASK)))), int(MathAbs(log(MarketInfo(Symbol(), MODE_LOTSTEP)))));} //2ой вариант {Lots = NormalizeDouble((AccountBalance()*MaximumRisk)/((MathAbs(Price-SL))/Point)/((MarketInfo(Symbol(),MODE_TICKVALUE))), int(MathAbs(log(MarketInfo(Symbol(), MODE_LOTSTEP)))));} 最初のバリエーションでは:EURUSDとXAUUSD - すべてが正しい、USDJPY - 預金額の2%の代わりに0.2%のリスクがある、SPX500とBRNの場合、OrderSend エラー131(ロット計算のエラー)が発生しました。 2番目のケース:EURUSD、XAUSD、USDJPY - すべてが正しい。SPX500は、2%ではなく、預金の20%をリスクとし、BRNについては、OrderSendエラー131(ロット計算のエラー)が発生します。 他の場所でエラーが発生しているのですが、どの場所なのかがわかりません。 Vitaly Muzichenko 2018.06.10 22:34 #5645 YanSay:ありがとうございました。ここでは、そのやり直しを紹介します。 最初のバージョン:EURUSDとXAUSD - すべてが正しい。USDJPY - 預金額の2%ではなく、0,2%のリスクがある。SPX500とBRNのケースでは、OrderSendエラー131(ロット計算のエラー)まで表示されます。2番目のバリエーション:EURUSD、XAUSD、USDJPY - すべてが正しい。SPX500は、2%ではなく、預金の20%をリスクにさらす。どこかがエラーになっているのですが、どの場所かわかりませんので、アドバイスをお願いします。Point をMarketInfo(Symbol(),MODE_POINT) で 置き換える。 Konstantin Nikitin 2018.06.10 23:34 #5646 Vitaly Muzichenko:Point をMarketInfo(Symbol(),MODE_POINT) で 置き換える。何が言いたいのか?すべてがチャート記号で計算される場合。多変量で現在のチャートと異なるシンボルが 計算されている場合は意味があります。 YanSay 2018.06.10 23:48 #5647 Vitaly Muzichenko:Point をMarketInfo(Symbol(),MODE_POINT) で 置き換える。残念ながら、役に立ちませんでした( MODE_POINT情報には、「引用通貨でのポイントサイズ」とあります。現在のシンボルに対する定義済み変数 Pointに格納される"。 説明から判断すると、どのバリアントを使っても問題ないでしょう。しかし、試してみたが、効果はなかった。 Roman Sharanov 2018.06.11 03:53 #5648 Expert Advisorのボタンにグラフィカルツールの「選択」を入れて、ボタンをクリックするとカーソルの下にツールアイコンが表示され、それを伸ばすことが可能かどうか教えてください。 そして、チャンネルはすでに指定されたプロパティを持っているはずです Alekseu Fedotov 2018.06.11 05:27 #5649 Roman Sharanov:Expert Advisorのボタンにグラフィカルツールの「選択」を入れて、ボタンをクリックするとカーソルの下にツールアイコンが表示され、それを伸ばすことが可能かどうか教えてください。また、チャンネルはすでに指定されたプロパティを持つことができます。もしかしたら Vitaly Muzichenko 2018.06.11 07:23 #5650 YanSay:残念ながら役に立ちませんでした( そして、MODE_POINTの情報には、「引用通貨でのポイントサイズ」と書かれています。現在のシンボルについては、あらかじめ定義された変数「Point」に格納されます。 説明から判断すると、どのバリアントを使っても問題ないでしょう。しかし、試してみたが、効果はなかった。機能をお試しください。 //=============================================================================================== //------------------------------ Расчет лота по риску на StopLoss -------------------------------+ //=============================================================================================== double sLot(double Percent=1, double Stloss=100, string symb="0") { if(symb=="0") symb=Symbol(); double TickValue =SymbolInfoDouble(symb,SYMBOL_TRADE_TICK_VALUE), TickSize =SymbolInfoDouble(symb,SYMBOL_TRADE_TICK_SIZE), ContractSize=SymbolInfoDouble(symb,SYMBOL_TRADE_CONTRACT_SIZE), Min_Lot =SymbolInfoDouble(symb,SYMBOL_VOLUME_MIN), Max_Lot =SymbolInfoDouble(symb,SYMBOL_VOLUME_MAX), Step =SymbolInfoDouble(symb,SYMBOL_VOLUME_STEP), Free =AccountInfoDouble(ACCOUNT_FREEMARGIN), Lots_New =0.0; int CalcMode=(int)SymbolInfoInteger(symb,SYMBOL_TRADE_CALC_MODE); if(Percent > 100) Percent = 100; if(Stloss <=0) return(0); if(Percent == 0) Lots_New = Min_Lot; else { if(CalcMode==0 || CalcMode==4) Lots_New = MathFloor((((Free*Percent/100)/Stloss)/TickValue)/Step)*Step; if(CalcMode==1||CalcMode==2||CalcMode==3) Lots_New = MathFloor(((((Free*Percent)/100)/Stloss)/((TickSize*TickValue)*ContractSize/TickValue))/Step)*Step; } if(Lots_New > Max_Lot) Lots_New = Max_Lot; if(Lots_New < Min_Lot) return(0); return(NormalizeDouble(Lots_New,/*LotDigit()*/ 2)); } 1...558559560561562563564565566567568569570571572...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
コードで代用したのは
まで
が、役に立たなかった)
それしか気づかなかったのは残念です)
SEEK_ENDフラグ付きのFileSeek()を使用すると便利です。
<ありがとうございます! 試してみます。
こんばんは!(^o^)
保証金の割合に基づいて取引のロットを計算するための普遍的な(異なる商品用の)コードを追加する方法に困惑しています。
こんな感じで作りました。
プライス(始 値)とSL(ストップロス)は別々に計算されます。
クォート通貨がドルであるペア(例:EURUSD)、インデックスSPX500および金については、すべて正しく計算されますが、ドルがクォートの最初のペア(例:USDJPY)については動作しません。
私が見逃しているものをアドバイスしてください。
ノーマライゼーションに注目
Digits変数には、現在のチャートシンボルの価格精度を決定する小数点以下の桁数が格納されます。
正規化に注意
変数_Digitsには、現在のチャートシンボル価格の精度を決定する小数点以下の桁数が格納されます。
ありがとうございました。ここでは、そのやり直しの様子を紹介します。
最初のバリエーションでは:EURUSDとXAUUSD - すべてが正しい、USDJPY - 預金額の2%の代わりに0.2%のリスクがある、SPX500とBRNの場合、OrderSend エラー131(ロット計算のエラー)が発生しました。
2番目のケース:EURUSD、XAUSD、USDJPY - すべてが正しい。SPX500は、2%ではなく、預金の20%をリスクとし、BRNについては、OrderSendエラー131(ロット計算のエラー)が発生します。
他の場所でエラーが発生しているのですが、どの場所なのかがわかりません。
ありがとうございました。ここでは、そのやり直しを紹介します。
最初のバージョン:EURUSDとXAUSD - すべてが正しい。USDJPY - 預金額の2%ではなく、0,2%のリスクがある。SPX500とBRNのケースでは、OrderSendエラー131(ロット計算のエラー)まで表示されます。
2番目のバリエーション:EURUSD、XAUSD、USDJPY - すべてが正しい。SPX500は、2%ではなく、預金の20%をリスクにさらす。
どこかがエラーになっているのですが、どの場所かわかりませんので、アドバイスをお願いします。
Point をMarketInfo(Symbol(),MODE_POINT) で 置き換える。
Point をMarketInfo(Symbol(),MODE_POINT) で 置き換える。
何が言いたいのか?すべてがチャート記号で計算される場合。多変量で現在のチャートと異なるシンボルが 計算されている場合は意味があります。
Point をMarketInfo(Symbol(),MODE_POINT) で 置き換える。
残念ながら、役に立ちませんでした(
MODE_POINT情報には、「引用通貨でのポイントサイズ」とあります。現在のシンボルに対する定義済み変数 Pointに格納される"。
説明から判断すると、どのバリアントを使っても問題ないでしょう。しかし、試してみたが、効果はなかった。
Expert Advisorのボタンにグラフィカルツールの「選択」を入れて、ボタンをクリックするとカーソルの下にツールアイコンが表示され、それを伸ばすことが可能かどうか教えてください。
そして、チャンネルはすでに指定されたプロパティを持っているはずです
Expert Advisorのボタンにグラフィカルツールの「選択」を入れて、ボタンをクリックするとカーソルの下にツールアイコンが表示され、それを伸ばすことが可能かどうか教えてください。
また、チャンネルはすでに指定されたプロパティを持つことができます。
もしかしたら
残念ながら役に立ちませんでした(
そして、MODE_POINTの情報には、「引用通貨でのポイントサイズ」と書かれています。現在のシンボルについては、あらかじめ定義された変数「Point」に格納されます。
説明から判断すると、どのバリアントを使っても問題ないでしょう。しかし、試してみたが、効果はなかった。
機能をお試しください。