MT5への願い - ページ 14 1...789101112131415161718192021...117 新しいコメント Dmitry Voronkov 2010.03.02 23:00 #131 stringo: 整理して修正しました。ありがとうございます。 do { rates_total=CopyRates(Symbol(),PERIOD_M1,time1,time2,rates); err++; } 訂正ありがとうございます。ほぼ良好、なぜほぼ・・・。 ヘルプにはこう書かれています。 start_time [in] 最初の要素に対応するバータイム。 そして、最初の要素は0である。 でも、最後の要素は大丈夫です。 もしこれが意図したものであるなら、ヘルペを修正してください。 Slava 2010.03.03 10:49 #132 vdv2001: 訂正ありがとうございます。ほぼ良好、なぜほぼ・・・。 ヘルプにはこう書かれています。 start_time [in] 最初の要素に対応するバータイム。 そして、最初の要素は0である。 でも、最後の要素は大丈夫です。 そういうことなら、ヘルペを直してください。 状況は、date-to-date variant の start_time と stop_time は何でもよく、いずれにせよ、それらは範囲を形成します。ドキュメントで分かりやすく説明しよう Dmitry Voronkov 2010.03.04 08:42 #133 stringo: 日付指定の場合、start_timeとstop_timeは任意であり、いずれにせよ範囲を形成する。これをより正確にドキュメントにマッピングしてみましょう。 つまり、Copy*関数は、date to dateの場合、開始要素以外のすべての要素を返すということでしょうか?だから、こんな風に式を書く必要があるんだ。 do { rates_total=CopyRates(Symbol(),PERIOD_M1,time1-PeriodSeconds(PERIOD_M1),time2,rates); err++; } この質問は、私にとって非常に重要なものです。 Dmitry Voronkov 2010.03.04 08:51 #134 日にちが切り替わると、こういうことが起こりますのでご注意ください。 アップデート後は、すべてがうまくいくようになります。 新しい日への移行の形成を観察し、私はしばしばこのシフトに気づき、次の日の更新チャートの最初のバーの形成の瞬間に最も興味深いことは、結果をもたらすことはありません。(間違っているかもしれませんが、前回の投稿も関係していると思います)。 defoille 2010.03.05 18:44 #135 ビルド252 メインメニュー:<Graphics>-<Graphics INSTRUMENTS>の 時間軸が表示されます。 Yedelkin 2010.03.06 14:26 #136 uncleVic: 残念ながら、CAccountInfoの最新バージョンはビルドに入りませんでした。 添付ファイルの中にFreeMarginCheckメソッド(今のところSYMBOL_CALC_MODE_FOREXのみ)が入っています。 ご意見・ご感想がありましたら、お書きください。 FreeMarginCheckメソッドの改良が必要であることがわかりました。 1.SYMBOL_CALC_MODE_FOREXの場合を考えてみましょう。 work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency(); bid=SymbolInfoDouble(work,SYMBOL_BID)。 margin=bid*volume*contract_size/leverage。 margin=free_margin。 が壊れる。 SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN) と Currency() の2つの合計値が等しければ、bid変数には値0、margin変数には値free_marginが設定されます。 それを解決するために、次のようなことをしました。 case SYMBOL_CALC_MODE_FOREX: bid=1.0; if (SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)!=Currency())。 { work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency(); bid=SymbolInfoDouble(work,SYMBOL_BID)。} margin=bid*volume*contract_size/leverage。 margin=free_margin。 が壊れる。 Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте www.mql5.com Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5 Dmitry Voronkov 2010.03.06 19:02 #137 Copy*()関数が正常に動作するようになるのはいつ頃でしょうか? 新しい建物のたびに動かなくなるのですが、誰も使っていないのでしょうか? Victor Kirillin 2010.03.08 11:33 #138 vdv2001: 訂正ありがとうございます。ほぼ良好、なぜほぼ・・・。 ヘルプにはこう書かれています。 start_time [in] 最初の要素に対応するバータイム。 そして、最初の要素は0である。 でも、最後の要素は大丈夫です。 もし、これが意図したものであれば、ヘルプを修正してください。 time1の値がどのように取得されるのか、例からはよくわかりません。再現を試みたが失敗した。 ファイル: testcopyratestimes.mq5 2 kb Victor Kirillin 2010.03.08 12:42 #139 Yedelkin: FreeMarginCheckメソッドを改良する必要があることを発見。 コメントありがとうございます。修正しました。 Yedelkin 2010.03.10 19:23 #140 Yedelkin: FreeMarginCheckメソッドを改良する必要があることを発見。 2.また、次のような問題もあります。もう一度、SYMBOL_CALC_MODE_FOREXの場合を考えてみましょう。 work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency(); bid=SymbolInfoDouble(work,SYMBOL_BID)。 シンボル 変数に直接クォートされていない通貨(例:CADJPY)を基準通貨とする場合、SymbolInfoDouble(work,SYMBOL_BID)には0が出力されます。 2.1 さらに、2つ目の変数(ビッド)を計算する際に、なぜビッド価格を使うのかが不明である。結局のところ、「証拠金通貨を買って、証拠金通貨を売る」というように、入札を計算 する通貨を、証拠金通貨を犠牲にして 取得するようにする必要があるのです。そして、特定の通貨ペアで、入金通貨が2位であれば、ASK価格を使って指定された操作を行う必要があります。 この状況を改善するために、私は以下のことを行いました。 ダブルコース//--- switch(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE))を指定します。{ case SYMBOL_CALC_MODE_FOREX: course=1.0; //--預入通貨が現在の通貨ペアの基準通貨であるかどうかをチェックします。//pair(ペア)もしそうなら、コース変数の値は1.0のままです if(SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)!=Currency())。{ work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency(); //--基準通貨が同じ通貨ペアがあるかどうかを調べます。 //現在のペアの基本通貨で、気配値通貨は預金通貨と同じです。 //(例:手付金がUSDの場合、直接見積もりを確認してください。) if(SymbolInfoDouble(work,SYMBOL_ASK)!=0)。 course=SymbolInfoDouble(work,SYMBOL_ASK); //--- 上記の条件を満たさない場合、シンボルの並びを 変更する //ワーク変数にある/currenciesが満たされておらず、基準通貨との通貨ペアを取得する //預入通貨と一致し、見積通貨は基準通貨と同じになる /currentペア(入金がUSDの場合、逆引きの通貨ペアを取得します)。 さもなくば{ work=Currency()+SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN); course=1/SymbolInfoDouble(work,SYMBOL_BID);}} margin=course*volume*contract_size/leverageです。 margin=free_margin。 が壊れる。 Документация по MQL5: Основы языка / Типы данных / Тип string www.mql5.com Основы языка / Типы данных / Тип string - Документация по MQL5 Wishes for MT5 MQL5 クックブック: インジケーターサブウィンドウコンソールースクロールバー StringFormat():レビューと既成の例 1...789101112131415161718192021...117 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
整理して修正しました。ありがとうございます。
訂正ありがとうございます。ほぼ良好、なぜほぼ・・・。
ヘルプにはこう書かれています。
start_time [in] 最初の要素に対応するバータイム。
そして、最初の要素は0である。
でも、最後の要素は大丈夫です。
もしこれが意図したものであるなら、ヘルペを修正してください。
訂正ありがとうございます。ほぼ良好、なぜほぼ・・・。
ヘルプにはこう書かれています。
start_time [in] 最初の要素に対応するバータイム。
そして、最初の要素は0である。
でも、最後の要素は大丈夫です。
そういうことなら、ヘルペを直してください。
日付指定の場合、start_timeとstop_timeは任意であり、いずれにせよ範囲を形成する。これをより正確にドキュメントにマッピングしてみましょう。
つまり、Copy*関数は、date to dateの場合、開始要素以外のすべての要素を返すということでしょうか?だから、こんな風に式を書く必要があるんだ。
この質問は、私にとって非常に重要なものです。
日にちが切り替わると、こういうことが起こりますのでご注意ください。
アップデート後は、すべてがうまくいくようになります。
新しい日への移行の形成を観察し、私はしばしばこのシフトに気づき、次の日の更新チャートの最初のバーの形成の瞬間に最も興味深いことは、結果をもたらすことはありません。(間違っているかもしれませんが、前回の投稿も関係していると思います)。
ビルド252
メインメニュー:<Graphics>-<Graphics INSTRUMENTS>の 時間軸が表示されます。
残念ながら、CAccountInfoの最新バージョンはビルドに入りませんでした。
添付ファイルの中にFreeMarginCheckメソッド(今のところSYMBOL_CALC_MODE_FOREXのみ)が入っています。
ご意見・ご感想がありましたら、お書きください。
FreeMarginCheckメソッドの改良が必要であることがわかりました。
1.SYMBOL_CALC_MODE_FOREXの場合を考えてみましょう。
work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency();
bid=SymbolInfoDouble(work,SYMBOL_BID)。
margin=bid*volume*contract_size/leverage。
margin=free_margin。
が壊れる。
SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN) と Currency() の2つの合計値が等しければ、bid変数には値0、margin変数には値free_marginが設定されます。
それを解決するために、次のようなことをしました。
case SYMBOL_CALC_MODE_FOREX:
bid=1.0;
if (SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)!=Currency())。
{
work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency();
bid=SymbolInfoDouble(work,SYMBOL_BID)。
}
margin=bid*volume*contract_size/leverage。
margin=free_margin。
が壊れる。
Copy*()関数が正常に動作するようになるのはいつ頃でしょうか?
新しい建物のたびに動かなくなるのですが、誰も使っていないのでしょうか?
訂正ありがとうございます。ほぼ良好、なぜほぼ・・・。
ヘルプにはこう書かれています。
start_time [in] 最初の要素に対応するバータイム。
そして、最初の要素は0である。
でも、最後の要素は大丈夫です。
もし、これが意図したものであれば、ヘルプを修正してください。
time1の値がどのように取得されるのか、例からはよくわかりません。再現を試みたが失敗した。
FreeMarginCheckメソッドを改良する必要があることを発見。
FreeMarginCheckメソッドを改良する必要があることを発見。
2.また、次のような問題もあります。もう一度、SYMBOL_CALC_MODE_FOREXの場合を考えてみましょう。
work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency();
bid=SymbolInfoDouble(work,SYMBOL_BID)。
シンボル 変数に直接クォートされていない通貨(例:CADJPY)を基準通貨とする場合、SymbolInfoDouble(work,SYMBOL_BID)には0が出力されます。
2.1 さらに、2つ目の変数(ビッド)を計算する際に、なぜビッド価格を使うのかが不明である。結局のところ、「証拠金通貨を買って、証拠金通貨を売る」というように、入札を計算 する通貨を、証拠金通貨を犠牲にして 取得するようにする必要があるのです。そして、特定の通貨ペアで、入金通貨が2位であれば、ASK価格を使って指定された操作を行う必要があります。
この状況を改善するために、私は以下のことを行いました。
ダブルコース
//---
switch(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE))を指定します。
{
case SYMBOL_CALC_MODE_FOREX:
course=1.0;
//--預入通貨が現在の通貨ペアの基準通貨であるかどうかをチェックします。
//pair(ペア)もしそうなら、コース変数の値は1.0のままです
if(SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)!=Currency())。
{
work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency();
//--基準通貨が同じ通貨ペアがあるかどうかを調べます。
//現在のペアの基本通貨で、気配値通貨は預金通貨と同じです。
//(例:手付金がUSDの場合、直接見積もりを確認してください。)
if(SymbolInfoDouble(work,SYMBOL_ASK)!=0)。
course=SymbolInfoDouble(work,SYMBOL_ASK);
//--- 上記の条件を満たさない場合、シンボルの並びを 変更する
//ワーク変数にある/currenciesが満たされておらず、基準通貨との通貨ペアを取得する
//預入通貨と一致し、見積通貨は基準通貨と同じになる
/currentペア(入金がUSDの場合、逆引きの通貨ペアを取得します)。
さもなくば
{
work=Currency()+SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN);
course=1/SymbolInfoDouble(work,SYMBOL_BID);
}
}
margin=course*volume*contract_size/leverageです。
margin=free_margin。
が壊れる。