[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 188 1...181182183184185186187188189190191192193194195...1145 新しいコメント Vasiliy Orlov 2009.08.14 21:53 #1871 スワップ計算をしようとすると、うまくいかない以下は、過去20回のトレードのスワップ値を出力するコードです。 for ( int j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) { OrderSelect(j, SELECT_BY_POS, MODE_HISTORY); if(OrderType()==OP_BUY) Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPLONG)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE)); if(OrderType()==OP_SELL) Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPSHORT)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE)); } しかし、推定されたスワップと実際のスワップは異なる。落札価格が二度と同じにならないのは、万に一つもないのです。 なぜか差は10の倍数になっています。つまり、計算上のスワップは、実際のスワップの10倍となる。何が問題なのか、私には想像もつきません。MarketInfo(OrderSymbol(),MODE_SWAPTYPE) が 1を返したら、 。"スワップの計算方法 1 - 商品の基準通貨で計算;"スワップ値をpipsで取ると、次のようになります。 MarketInfo(OrderSymbol(),MODE_SWAPLONG) この値にBidを掛けて います。 *MarketInfo(OrderSymbol(),MODE_BID) その後、 から 、 のロットの大きさ *OrderLots() と、1ロットから預金通貨で 1ポイント()の価値を乗じる。 *MarketInfo(OrderSymbol(),MODE_TICKVALUE) 返される値は、以下の通りです。eurgbp lot = 0.46000000 real swap = -1.31000000 estimated swap -13.05244609 [WARNING CLOSED!] Any newbie 初心者の方からの質問 MQL5 MT5 MetaTrader MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Alexander 2009.08.14 21:55 #1872 どうしたらいいか教えてください)) ダブルMA1,MA2。 MA1=iMA(...,0)とする。 MA2=iMA(...,3)とする。 if (MA1-MA2>Point)//MA ルックアップ if (MA1-MA2,-Point)//MAは下を向く Alexander 2009.08.14 21:58 #1873 vasya_vasya писал(а)>> この値にBidを掛けて います。 *MarketInfo(OrderSymbol(),MODE_BID) 何のために? [Deleted] 2009.08.14 22:06 #1874 Roger >> : どうしたらいいか教えてください)) ダブルMA1,MA2。 MA1=iMA(...,0)とする。 MA2=iMA(...,3)とする。 if (MA1-MA2>Point)//MA ルックアップ if (MA1-MA2,-Point)//MA は下を向いています。 ありがとうございました)) Vasiliy Orlov 2009.08.14 22:06 #1875 Roger писал(а)>> これは何のため? 何を返すのかの説明が見つからず MarketInfo(OrderSymbol(),MODE_SWAPLONG)です。 EURGBP quotation のEUR point sizeと判断し、BIDを掛けて GBPで いくらになるかを計算しました。 という点です。 MarketInfo(OrderSymbol(),MODE_TICKVALUE)です。 EURGBP クォートのGBP に対してのみ、1ロットあたりのポイント値を返します。EURに対しては 返しません。 Alexander 2009.08.14 22:28 #1876 vasya_vasya писал(а)>> 値が何を返すかについての記述はどこにもない なぜか、すべての計算が預金の通貨で行われているような気がしたのです。 Vasiliy Orlov 2009.08.14 23:03 #1877 Roger писал(а)>> なぜか私は、すべての計算が預金の通貨で行われると思い続けていました。 関数 MarketInfo(OrderSymbol(),MODE_SWAPSHORT) を実行する。 整数値で-2 を返します。したがって、これがポイントの価値であると私は考えています。 これが、預けた通貨のpipsで表されるスワップの値だとします。 預入通貨 = USD マルチプル MarketInfo(OrderSymbol(),MODE_SWAPSHORT) ロット数別 *OrderLots() また、1ロットあたり当社保証金通貨1ピップの価値を乗じます。 *10 ゲット スワップ=-9.20000000 の代わりに リアルスワップ=-1.31000000 Alexander 2009.08.15 00:14 #1878 vasya_vasya писал(а)>> 関数 MarketInfo(OrderSymbol(),MODE_SWAPSHORT) を実行する。 整数値で-2 を返します。したがって、これがpipsの値であると推測される。 EURGBPの場合、ショートで0(これはAlpari)、ロングで-0.68を返し、これはまさにドル建てです。 [Deleted] 2009.08.15 00:47 #1879 プロファイルは、N期間の最大高を計算する方法関数iHighestは ありませんmql5言語のヘルプによると、アドバイスしてください? ...私はcopyHighとfmaxを試してみましたが、特定の期間のみ、もちろんその、ヘルプではない Alexander 2009.08.15 01:05 #1880 ざっくり言うと double HighestBar(int start, int end) { double maxBar; for (int i= start; i< end; i++) if( maxBar<High[ i]) maxBar=High[ i]; return( maxBar); } 1...181182183184185186187188189190191192193194195...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
スワップ計算をしようとすると、うまくいかない
以下は、過去20回のトレードのスワップ値を出力するコードです。
for ( int j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {
OrderSelect(j, SELECT_BY_POS, MODE_HISTORY);
if(OrderType()==OP_BUY)
Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPLONG)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE));
if(OrderType()==OP_SELL)
Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPSHORT)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE));
}
なぜか差は10の倍数になっています。
つまり、計算上のスワップは、実際のスワップの10倍となる。
何が問題なのか、私には想像もつきません。
MarketInfo(OrderSymbol(),MODE_SWAPTYPE) が 1を返したら、 。
"スワップの計算方法 1 - 商品の基準通貨で計算;"
スワップ値をpipsで取ると、次のようになります。
MarketInfo(OrderSymbol(),MODE_SWAPLONG)
この値にBidを掛けて います。
*MarketInfo(OrderSymbol(),MODE_BID)
その後、 から 、 のロットの大きさ
*OrderLots()
と、1ロットから預金通貨で 1ポイント()の価値を乗じる。
*MarketInfo(OrderSymbol(),MODE_TICKVALUE)
返される値は、以下の通りです。
eurgbp lot = 0.46000000 real swap = -1.31000000 estimated swap -13.05244609
どうしたらいいか教えてください))
ダブルMA1,MA2。
MA1=iMA(...,0)とする。
MA2=iMA(...,3)とする。
if (MA1-MA2>Point)//MA ルックアップ
if (MA1-MA2,-Point)//MAは下を向く
この値にBidを掛けて います。
*MarketInfo(OrderSymbol(),MODE_BID)
何のために?
どうしたらいいか教えてください))
ダブルMA1,MA2。
MA1=iMA(...,0)とする。
MA2=iMA(...,3)とする。
if (MA1-MA2>Point)//MA ルックアップ
if (MA1-MA2,-Point)//MA は下を向いています。
ありがとうございました))
これは何のため?
何を返すのかの説明が見つからず
MarketInfo(OrderSymbol(),MODE_SWAPLONG)です。
EURGBP quotation のEUR point sizeと判断し、BIDを掛けて GBPで いくらになるかを計算しました。
という点です。
MarketInfo(OrderSymbol(),MODE_TICKVALUE)です。
EURGBP クォートのGBP に対してのみ、1ロットあたりのポイント値を返します。EURに対しては 返しません。
値が何を返すかについての記述はどこにもない
なぜか私は、すべての計算が預金の通貨で行われると思い続けていました。
関数 MarketInfo(OrderSymbol(),MODE_SWAPSHORT) を実行する。
整数値で-2 を返します。したがって、これがポイントの価値であると私は考えています。
これが、預けた通貨のpipsで表されるスワップの値だとします。
預入通貨 = USD
マルチプル
MarketInfo(OrderSymbol(),MODE_SWAPSHORT)
ロット数別
*OrderLots()
また、1ロットあたり当社保証金通貨1ピップの価値を乗じます。
*10
ゲット
スワップ=-9.20000000
の代わりに
リアルスワップ=-1.31000000
関数 MarketInfo(OrderSymbol(),MODE_SWAPSHORT) を実行する。
整数値で-2 を返します。したがって、これがpipsの値であると推測される。
EURGBPの場合、ショートで0(これはAlpari)、ロングで-0.68を返し、これはまさにドル建てです。
ざっくり言うと