エラー、バグ、質問 - ページ 1204

 

何も印刷されない

string g( string str = __FUNCTION__ ) { return ( str ); }
void OnStart()
{
        Print( g() );
}

なぜダメなのか?

 
marketeer:
総じて、調査を続けた結果、このような結果になりました。マーケットレビューのティッカーにマウスカーソルを置くと、ツールチップが表示され、その中にトレード:いいえ、しかし黒く表示されているロシアのCFDについては、トレード:クローズが表示されます(もう一度、時間がトレードとシンボルのティックがこの瞬間に来ることに注意すべきです)。このことから、このブローカーにはいくつかの取引禁止レベルがあり、そのうちの一部(あるいは一つ)だけがグレーで表示され、残りはすべて黒で表示されるため、アクティブなシンボルと共通の山に積まれていると私は結論づけました。

取引種別のClose Onlyは、既存のポジションの決済のみを許可することを意味します。そのため、アクティブブラックで表示されます。

動作モードは、取引サーバーで設定します。

 
Renat:

取引種別のClose Onlyは、既存のポジションの決済のみを許可することを意味します。そのため、黒色でアクティブに表示されます。

動作モードは、トレードサーバーで設定します。

閉じるだけ」とは書いておらず、「閉じる」と書いてあります。これはエラーなのでしょうか、それとも他のニュアンスが不明なままなのでしょうか?
 
marketeer:
閉じるだけ」ではなく、「閉じる」と書いてあります。これは間違いなのか、それとも他のニュアンスが不明なままなのか。
ここでいうクローズとは、クローズのみという意味です。短く綴っているだけです。
 
class object_line : public CObject
{
public:
   static color line_color_befor;
};
static extern color object_line::line_color_befor = clrGreen;

void OnChartEvent(const int id,                            
                  const long& lparam,   
                  const double& dparam, 
                  const string& sparam){
   if (id == CHARTEVENT_OBJECT_CREATE)   
      Alert(object_line::line_color_befor);   
} 

1.編著者

2.オブジェクトが作成さ れると、アラートがclrBlack されます。

3.4.670ビルドで確認

 
A100:

何も印刷されない

なぜダメなのか?

メッセージをありがとうございました。
FUNCTION__ と __FUNCSIG__ マクロは、関数本体の外部で使用することはできません。

新しいコンパイルエラーを 追加しました: 377 "マクロは関数本体の外には出現できません".
 
ALXIMIKS:

1.編著者

2.オブジェクトが作成さ れると、アラートがclrBlack されます。

3.4.670ビルドで確認

メッセージをありがとうございました。コンパイラのエラーが修正されました。
'line_color_befor' - redefinition; different type modifiers
このエラーを回避するには、以下のコードを使用してください。
#include <object.mqh>

class object_line : public CObject
{
public:
   static color line_color_befor;
};

color input line_color_param=clrGreen;//object_line::line_color_befor

static color object_line::line_color_befor = line_color_param;

void OnChartEvent(const int id,                            
                  const long& lparam,   
                  const double& dparam, 
                  const string& sparam){
   if (id == CHARTEVENT_OBJECT_CREATE)   
      Alert(object_line::line_color_befor);   
} 
 
A100:

実行中のエラー: ポインタのキャストが正しくない (build 977, but it was a time to time before)

何かを移動したり(例えば、#importの宣言を入れ替えたり)、3つのファイルを2つにしたり、h()コールを削除したりすると、指定したエラーの代わりに、他のエラーが発生します。

上記のコードを再コンパイルすると、L::yの代わりにR::yを呼び出すことになります。

より複雑なバージョンでは、モジュールの共通関数が静的コンストラクタの前に(!)呼び出されます(上記の例では、f()がX::Xの前に呼び出され、それがOnStartの前に正しく呼び出されるようになります)。例を挙げてみるが、膨大なファイルがある。なぜなら、オブジェクトの生成順序は コンパイラによって定義され、私はそれを変更することができないからです。

投稿ありがとうございます 問題あり、調査中です。

UPD: 修正しました。
 
mql5:
ご投稿ありがとうございます。

UPD: 修正しました。

https://www.mql5.com/ru/forum/1111/page1221#comment_1070267 関数が仮想であることを明記していなかったので、今、RとLをそう宣言すると。

class R { public:
        virtual void y( A* a ) const { PF       ((B *)a).g( 1 ); }
};
class L : public R { public:
        virtual void y( A* a )       { PF       ((B *)a).g( 2 ); }
};
とすると,L::y が呼ばれ,R::y が呼ばれるはずである - なぜなら,これらは異なるからである (const で異なり,ポインタは R にあった)
 

このサイトからダウンロードしたものも含め、すべてのブローカーの端末が動かなくなった...。

再起動してもダメ、再起動、再インストールもダメ、以前は全てうまくいっていたのに、パソコンには何もインストールしていない、端末にも何もインストールしていない、マーケットで買い物だけしている。