初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 916

 
Zorian43:
みなさんこんばんは!トピックに書いていいのかわからないのですが、間違っていたらすみません。AndroidにMetatrader 5をインストール すると、自動的にデモ口座が作成され、アプリを起動するたびに接続されるようになりました。別の口座、今度はブローカーからの口座に接続しようと思ったら、デモ口座のパスワードが見つからなかった。パスワードのリセット」を押したら、その後、デモ口座に接続できなくなりました。デモ口座へのアクセスを回復する方法はありますか?
いいえ、新規にデモ口座を開設してください。
 

こんにちは。

テスターでCAccountInfo::MarginCheck()メソッドが必要なマージンゼロを返せる理由を教えて下さい。ORDER_TYPE_BUY_LIMITの 指値買い注文で呼び出された場合のみ、0を返します。

機器Si-9.18 - MICEXからのドル先物。

テストプロジェクトでは、テスターの次の呼び出しで、ゼロではなく、90という、かなりありえないような小さな値が得られます。

ENUM_ORDER_TYPE     orderType   = NULL;
uint                orderVolume = 1;
double              orderPrice  = gvTick.last;
double marginRequired = 0;

orderType       = ORDER_TYPE_BUY_LIMIT;
marginRequired  = gnCAccountInfo.MarginCheck( gsIns, orderType, orderVolume, orderPrice);
Print("  Требуемая маржа ", marginRequired);
ログ出力:2018.09.01 13:38:56.040 2018.06.13 12:10:00 Margin required 90.0
 
rel18:

こんにちは。

CAccountInfo::MarginCheck()メソッドがテスターで必要なマージンゼロを返せる理由を教えて下さい。指値買い注文ORDER_TYPE_BUY_LIMITで 呼び出された場合のみ、0を返します。

機器Si-9.18 - MICEXからのドル先物。

テストプロジェクトでは、テスターの次の呼び出しで、ゼロではなく、90という、かなりありえないような小さな値が得られます。

だけだからではないでしょうか。

ORDER_TYPE_BUY

成行買い注文

注文型販売

成行売り注文

 
Vladimir Karputov:

だけだからではないでしょうか。

ORDER_TYPE_BUY

成行買い注文

注文型販売

成行売り注文

同じ例でテスターで買い指値注文をした結果がこちらです。90のマージンはとても小さい。 本当にそうだろうか?


そして、ここではテスターのマージンがゼロになっています。



履歴のテストはすべて実際のアカウントで行われます。
 

インジケータが動作しなくなった、コンパイルするのを手伝ってほしい
ありがとうございます。

ファイル:
VP-Range-v6.mq5  44 kb
VP-v6.mq5  42 kb
 
rel18:

同じ例でテスターで指値の買い注文をした結果がこちらです。90のマージンは非常に小さいですが、そういうものなのでしょうか?


もしかして、デモ口座のせい?同じブローカーの実際の口座で試してみてください。

 
Aliaksei Karalkou:

インジケータが動作しなくなったので、コンパイルを助けて ください
ありがとうござい ます。

1861ビルドではiBarShift機能が 内蔵されているため、カスタム機能として使用することはできません。機能名を変更してください。

 

こんにちは!このタスクに協力してください。PERIOD_M1""PERIOD_M2""PERIOD_M3" などの形式でString型の 値が存在します。これらの値を ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 タイプの値でそれぞれ置き換える必要がある、など。

下の例では、すべてうまくいっていますが、switch 文の中で文字列変数を使用することはできません。if...elseの構文を使えばいいのですが、もっとエレガントな方法があると思うんです。何か提案はありますか?ありがとうございます。

//+------------------------------------------------------------------+
//| Преобразует строку в таймфрейм                                   |
//+------------------------------------------------------------------+
ENUM_TIMEFRAMES StringToTimeframe(string timeframe)
  {
   ENUM_TIMEFRAMES tfr=Period();
   switch(timeframe) 
     {
      case "M1"  : tfr=PERIOD_M5;  break;
      case "M2"  : tfr=PERIOD_M6;  break;
      case "M3"  : tfr=PERIOD_M5;  break;
      }
//---
   return(tfr);
  }
 
Tango_X:

こんにちは!このタスクに協力してください。PERIOD_M1""PERIOD_M2""PERIOD_M3" などの形式でString型の 値が存在します。これらの値を ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 タイプの値でそれぞれ置き換える必要がある、など。

下の例では、すべてうまくいっていますが、switch 文の中で文字列変数を使用することはできません。if...elseの構文を使えばいいのですが、もっとエレガントな方法があると思います。何か提案はありますか?ありがとうございます。

if() 構文を使用する

 
Tango_X:

こんにちは!このタスクに協力してください。PERIOD_M1""PERIOD_M2""PERIOD_M3" などの形式でString型の 値が存在します。これらの値を ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 タイプの値でそれぞれ置き換える必要がある、など。

下の例では、すべてうまくいっていますが、switch 文の中で文字列変数を使用することはできません。if...elseの構文を使えばいいのですが、もっとエレガントな方法があると思います。何か提案はありますか?ありがとうございます。

//+------------------------------------------------------------------+
//| Преобразует строку в таймфрейм                                   |
//+------------------------------------------------------------------+
ENUM_TIMEFRAMES StringToTimeframe(string timeframe)
  {
   return
     (
      timeframe == "M1"   ?  PERIOD_M1  :
      timeframe == "M2"   ?  PERIOD_M2  :
      timeframe == "M3"   ?  PERIOD_M3  :
      timeframe == "M4"   ?  PERIOD_M4  :
      timeframe == "M5"   ?  PERIOD_M5  :
      timeframe == "M6"   ?  PERIOD_M6  :
      timeframe == "M10"  ?  PERIOD_M10 :
      timeframe == "M12"  ?  PERIOD_M12 :
      timeframe == "M15"  ?  PERIOD_M15 :
      timeframe == "M20"  ?  PERIOD_M20 :
      timeframe == "M30"  ?  PERIOD_M30 :
      timeframe == "H1"   ?  PERIOD_H1  :
      timeframe == "H2"   ?  PERIOD_H2  :
      timeframe == "H3"   ?  PERIOD_H3  :
      timeframe == "H4"   ?  PERIOD_H4  :
      timeframe == "H6"   ?  PERIOD_H6  :
      timeframe == "H8"   ?  PERIOD_H8  :
      timeframe == "H12"  ?  PERIOD_H12 :
      timeframe == "D1"   ?  PERIOD_D1  :
      timeframe == "W1"   ?  PERIOD_W1  :
      timeframe == "MN1"  ?  PERIOD_MN1 : 
      PERIOD_CURRENT
     );
  }
//+------------------------------------------------------------------+
理由: