MetaTrader 5へのアップグレードを損なわずに行うためのヘルプ - ページ 15

 
Valmars:

...

Valeryさん、calc.mq 5のこのコードセクションの意味を教えてください。

...

if(StringSubstr(Symbol(), 3, 3)=="CAD") { xxx=1.2175;   }
if(StringSubstr(Symbol(), 3, 3)=="JPY") { xxx=91.425;   }
if(StringSubstr(Symbol(), 3, 3)=="CHF") { xxx=1.1631;   }
if(StringSubstr(Symbol(), 3, 3)=="AUD") { xxx=1/0.6800; }
if(StringSubstr(Symbol(), 3, 3)=="NZD") { xxx=1/0.54;   }
if(StringSubstr(Symbol(), 3, 3)=="GPB") { xxx=1/1.49;   }
if(StringSubstr(Symbol(), 3, 3)=="EUR") { xxx=1/1.3015; }

...

つまり、なぜxxxという 変数に固定値が割り当てられているのか。

---

そしてもう一つの質問。ヘルプには、FXの 利益計算に関する情報が不完全に記載されていますね。逆指値(XXXUSD)の計算式だけが与えられて、利益を計算するということです。

識別子

商品説明

シンボルカルクモードFX

Forexモード- FXのための利益とマージン計算

マージン:ロット*契約サイズ/レバレッジ

利益:(クローズ価格-オープン価格)*契約サイズ*ロット数

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
tol64:

そしてもう一つの質問。FXの 利益計算について、ヘルプの情報が不完全であることが判明?逆指値(XXXUSD)のみの利益計算式が提示されていることを意味します。

はい、その通りだと思われます。これまで、利益計算については、「為替取引のABC」という記事で紹介しています。
Азбука торговли валютами - Статьи по MQL4
  • www.mql5.com
Азбука торговли валютами - Статьи по MQL4: особенности автоматических торговых стратегий
 
Rosh:
はい、その通りだと思います。とりあえず利益計算については、「為替取引のABC」の記事を読んでみてください。

ありがとうございます。この記事はぜひチートシートとしてブックマークしておいてください。すべてを頭に入れることはできませんから。さらに、ヘルプにテーブルを追加して、すべてが一元化されるようにすれば、なおよいでしょう。:)

---

また、固定値(生首で見る必要があります:)なので、データがない場合のことも理解しています。しかし、この値は為替レートによって常に修正される必要があります。そのため、間違った値を出力するのではなく、データがないことを示すメッセージを出力する方が良いのです。

 
tol64: そして、データがない場合の固定値(頭の中が新鮮な時 :) は理解できました。しかし、これらの値は、ある通貨や他の通貨のレートによって常に修正される必要があります。そのため、間違った値ではなく、データがないことを示すメッセージを表示する方が良いのです。

はい、まったくその通りです。筆者のように、怠け者の私は、時間がなくて......。MT4でクロスレートを利用するには、「マーケットウォッチ」ウィンドウで、米ドルで表示される両通貨のシンボルを明示的に選択する必要があります(例)。例えば、NZDJPYの場合、USDJPYと NZDUSDを選択する必要があります。この点については、著者は前文で免責事項としている。

"XXXYYY "クロスの場合、対応する

USDYYYまたはXXXUSDメジャーペア(例えばGPBJPYの場合、マーケットレビューのウィンドウが開いている必要があります。

USDJPYはオープンであること)".

MT5では、インジケータ自体に任せるのがよいでしょう。

 

Piligrim:

Valery(Valmars)さん、このインジケータをMQL5でもやり直すことを申し出るのは、再パッケージ化の複雑さの点で意味があると思いますか?前作は、翻訳していただいたのですが、とてもうまくいっていますね

MT5にはスタンドアロンチャートがない(今後もない)ため、このインジケータをMT5用に修正することはできません。MT4でインジケーターはどのように機能するのですか?これは、非標準期間のスタンドアロン・チャートを作成し、新しい相場が来ると、この非標準期間の .hst ファイルに保存されます。そして、このチャートを開くのです。1ティックごとに、インジケータDLLを使用して更新(再描画)します。その結果、非標準の期間がリアルタイムで更新されたチャートが表示されます。

MT5では、PERIOD.hc(標準期間のチャートを作成するためのファイル)のフォーマットでさえ、開発者によって開かれていません。任意の周期を持つグラフについての論争はこちらで ご覧いただけます。

 
Valmars:

はい、まったくその通りです。筆者のように、怠け者の私は、時間がなくて......。MT4でクロスレートを利用するには、「マーケットウォッチ」ウィンドウで、米ドルで表示される両通貨のシンボルを明示的に選択する必要があります(例)。例えば、NZDJPYの場合、USDJPYとNZDUSDを選択する必要があります。著者はこのことについて、前文で免責事項を述べている。

"XXXYYY "クロスの場合、対応する

メジャーペア USDYYY または XXXUSD (例: Market Watch ウィンドウの GPBJPY は必須)

be open USDJPY)」です。

MT5では、インジケータ自体に任せるのがよいでしょう。

では、固定値を持つリストの代わりに、このようなコードになるのでしょうか?:

bool flgExit=false;
string arrSymbols[7]={ "CAD","JPY","CHF","AUD","NZD","GBP","EUR" };
//---
for(int i=ArraySize(arrSymbols)-1; i>=0; i--)
  {
   if(flgExit) { break; }
   //---
   if(StringSubstr(Symbol(),3,3)==arrSymbols[i])
     {
      for(int j=SymbolsTotal(false)-1; j>=0; j--)
        {
         if(SymbolName(j,false)=="USD"+arrSymbols[i]+"")
           {
            SymbolSelect("USD"+arrSymbols[i]+"",true);
            //---
            if((xxx=SymbolInfoDouble(SymbolName(j,true),SYMBOL_BID))<=0)
              {
               Comment("Ошибка ("+IntegerToString(GetLastError())+") при получении данных по символу "+SymbolName(j,true)+""); return(0);
              }
            else { flgExit=true; break; }
           }
       }
   }
}
 
Valmars:

MT5には自律型チャートがない(今後もない)ため、このインジケータをMT5に変換することはできません。MT4でインジケーターはどのように機能するのですか?これは、非標準期間のスタンドアロン・チャートを作成し、新しい相場が来ると、この非標準期間の .hst ファイルに保存されます。そして、このチャートを開くのです。1ティックごとに、インジケータDLLの助けを借りて更新(再描画)します。その結果、非標準の期間を持つチャートがリアルタイムに更新されるのがわかります。

MT5では、PERIOD.hcファイル(標準期間のチャートを構築する)のフォーマットさえも開発者から公開されていません。おそらく、「左利き」のチャートを作ることができないからでしょう。任意の周期を持つグラフについての論争はこちらで ご覧いただけます。

いずれにせよ、ありがとう、Valery!プログラマーではない私にとって、自分の能力を超えた問題に対して可能な解決策を見つけるという意味では、理解しやすい専門家の相談の方がはるかに望ましい。

 
tol64:

では、その固定値リストの代わりに、このコードで問題ないでしょうか?:

はい、十字架の2文字目も実行して、イナテに入れればOKです。

 
Valmars:
はい、これを2つ目のクロスキャラクターにもやって、イナテに入れればいいんです。

ヴァレリーさん、もしお時間があれば、改訂版を見てみてください。今、上で述べたことをすべて踏まえた上で、正しく行われているか?ありがとうございます。


ファイル:
 
tol64:

...

上記ファイル(calcriskprofit.mq5)を更新しました。誤字を修正しました。GBPの代わりにGPBでした。:)