初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 133 1...126127128129130131132133134135136137138139140...260 新しいコメント Ihor Herasko 2018.04.12 14:45 #1321 Aliaksandr Kryvanos:こんにちは。 MT5からMT4へのMaxLotCheck()の置き換えのアナログを提案できる人はいますか、ありがとうございます。機能そのものがないのです。自分で書くしかない。すべてのチェックを入れても10~20行に収まるはずです。 削除済み 2018.04.12 14:46 #1322 Ihor Herasko:機能そのものがないのです。自分で書くしかない。すべてのチェックを入れても、10~20行に収まるはずです。なるほど、でも数式そのものは? Ihor Herasko 2018.04.12 14:49 #1323 Aliaksandr Kryvanos:なるほど、でもここで計算式そのものを?ソースを見てみよう。 //+------------------------------------------------------------------+ //| Access functions OrderCalcMargin(...). | //| INPUT: name - symbol name, | //| trade_operation - trade operation, | //| price - price of the opening position, | //| percent - percent of available margin [1-100%]. | //+------------------------------------------------------------------+ double CAccountInfo::MaxLotCheck(const string symbol,const ENUM_ORDER_TYPE trade_operation, const double price,const double percent) const { double margin=0.0; //--- checks if(symbol=="" || price<=0.0 || percent<1 || percent>100) { Print("CAccountInfo::MaxLotCheck invalid parameters"); return(0.0); } //--- calculate margin requirements for 1 lot if(!OrderCalcMargin(trade_operation,symbol,1.0,price,margin) || margin<0.0) { Print("CAccountInfo::MaxLotCheck margin calculation failed"); return(0.0); } //--- if(margin==0.0) // for pending orders return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX)); //--- calculate maximum volume double volume=NormalizeDouble(FreeMargin()*percent/100.0/margin,2); //--- normalize and check limits double stepvol=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP); if(stepvol>0.0) volume=stepvol*MathFloor(volume/stepvol); //--- double minvol=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN); if(volume<minvol) volume=0.0; //--- double maxvol=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX); if(volume>maxvol) volume=maxvol; //--- return volume return(volume); }ENUM_ORDER_TYPEと OrderCalcMarginはここで置き換える必要があります。 削除済み 2018.04.12 14:53 #1324 Yum)ソース...ありがとうございました。 削除済み 2018.04.12 16:18 #1325 まだ、はっきりしない...。 margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED) и double margin;OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),margin); 1ロット開設時の証拠金を異なる数で返す Ihor Herasko 2018.04.12 17:00 #1326 Aliaksandr Kryvanos:まだ、はっきりしない...。 margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED) и double margin;OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),margin); 1ロットオープン時のマージン数を変更する明らかに違う端末で比較していますね ))上がMT4、下がMT5です。だから、サーバーも違えば、取引条件も違う。一番シンプルなのは、レバレッジの違いです。 実際に手に入れたもの、価値観はどうだったのでしょうか? 削除済み 2018.04.12 17:09 #1327 そうなんです、レバレッジが違うんです、一方は1/300、もう一方は1/2000なんです しゃい ArturR 2018.04.12 20:46 #1328 みなさん、こんにちは。 私のEAでは、エントリーポイントを多段階で探します。そのために、まずスタート時点のシグナル履歴をチェックし、その後リアルタイムで動作します。ストラテジーテスターでは、ヒストリーですべて正常に動作するのですが、リアルタイムで実行すると、ヒストリーを正しくスキャンできず、シグナルを逃してしまうのですが、何か問題があるのでしょうか? 多分、明白な答えがあるのでしょうが、コードの断片はここに掲載するにはかなり大きいので、私はまだコードを与えていません。 Konstantin Erin 2018.04.13 04:31 #1329 ArturR:みなさん、こんにちは。 私のEAでは、エントリーポイントを多段階で探します。そのために、まずスタート時点のシグナル履歴をチェックし、その後リアルタイムで動作します。ストラテジーテスターでは、ヒストリーですべて正常に動作するのですが、リアルタイムで実行すると、ヒストリーを正しくスキャンできず、シグナルを逃してしまうのですが、何か問題があるのでしょうか? 多分、明白な答えがあるのでしょうが、コードの断片はここに掲載するにはかなり大きいので、私はまだコードを与えていません。 デバッグは一個一個やってください。履歴のスキャンをスクリプトに分離する。Alert()で詳細情報を出力:まずヒストリーのバー数、開始と終了の日付、...。という流れでスキャンしていきます。全てファイルに書き出す 方が便利かもしれません ArturR 2018.04.13 14:13 #1330 STARIJ: デバッグを一歩一歩行ってください。履歴のスキャンをスクリプトに分離する。Alert()を使って詳細な情報を出力します。まず、履歴のバーの数、開始日と終了日、...です。という流れでスキャンしていきます。全てファイルに書き出す 方が便利かもしれませんありがとうございます、やり方を読んでみます。 もう一つ質問があるのですが、リアルタイムデバッグを実行すると、Metatrader4は常にCHFで実行されるのですが、私が必要とするペアで実行させるために何を調整すればよいか、誰かご存知でしょうか? テスターでは考慮されていないようですが、他の時間軸の指標値でした。また、正しいペアの作り方もわかりました。 ご参加ありがとうございました ) 1...126127128129130131132133134135136137138139140...260 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
MT5からMT4へのMaxLotCheck()の置き換えのアナログを提案できる人はいますか、ありがとうございます。
機能そのものがないのです。自分で書くしかない。すべてのチェックを入れても10~20行に収まるはずです。
機能そのものがないのです。自分で書くしかない。すべてのチェックを入れても、10~20行に収まるはずです。
なるほど、でも数式そのものは?
なるほど、でもここで計算式そのものを?
ソースを見てみよう。
ENUM_ORDER_TYPEと OrderCalcMarginはここで置き換える必要があります。まだ、はっきりしない...。
margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED)
и
double margin;
OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),margin);
1ロット開設時の証拠金を異なる数で返す
まだ、はっきりしない...。
margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED)
и
double margin;
OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),margin);
1ロットオープン時のマージン数を変更する
明らかに違う端末で比較していますね ))上がMT4、下がMT5です。だから、サーバーも違えば、取引条件も違う。一番シンプルなのは、レバレッジの違いです。
実際に手に入れたもの、価値観はどうだったのでしょうか?
そうなんです、レバレッジが違うんです、一方は1/300、もう一方は1/2000なんです
しゃい
みなさん、こんにちは。
私のEAでは、エントリーポイントを多段階で探します。そのために、まずスタート時点のシグナル履歴をチェックし、その後リアルタイムで動作します。ストラテジーテスターでは、ヒストリーですべて正常に動作するのですが、リアルタイムで実行すると、ヒストリーを正しくスキャンできず、シグナルを逃してしまうのですが、何か問題があるのでしょうか?
多分、明白な答えがあるのでしょうが、コードの断片はここに掲載するにはかなり大きいので、私はまだコードを与えていません。
みなさん、こんにちは。
私のEAでは、エントリーポイントを多段階で探します。そのために、まずスタート時点のシグナル履歴をチェックし、その後リアルタイムで動作します。ストラテジーテスターでは、ヒストリーですべて正常に動作するのですが、リアルタイムで実行すると、ヒストリーを正しくスキャンできず、シグナルを逃してしまうのですが、何か問題があるのでしょうか?
多分、明白な答えがあるのでしょうが、コードの断片はここに掲載するにはかなり大きいので、私はまだコードを与えていません。
デバッグを一歩一歩行ってください。履歴のスキャンをスクリプトに分離する。Alert()を使って詳細な情報を出力します。まず、履歴のバーの数、開始日と終了日、...です。という流れでスキャンしていきます。全てファイルに書き出す 方が便利かもしれません
ありがとうございます、やり方を読んでみます。
もう一つ質問があるのですが、リアルタイムデバッグを実行すると、Metatrader4は常にCHFで実行されるのですが、私が必要とするペアで実行させるために何を調整すればよいか、誰かご存知でしょうか?
テスターでは考慮されていないようですが、他の時間軸の指標値でした。また、正しいペアの作り方もわかりました。 ご参加ありがとうございました )