初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1320 1...131313141315131613171318131913201321132213231324132513261327...1504 新しいコメント Alexey Viktorov 2021.06.28 09:34 #13191 pivomoe:バージョン2981にアップデートした後、行にエラーが表示されるようになりました。この線を交換する方法を教えてください。 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム mql5の特性、ヒントとコツ イリヤス さん 2021.05.28 18:18 初期化シーケンス"{ ... "を拡張しています。次のビルドでは、定数だけでなく、任意の式を使用できるようにします。 この変更の代わりに、(通常の式と同様に)列挙型に対する定数の使用に制限が設けられます:定数が列挙型に属さない場合、対応するエラーが生成されます。 既存のコードを分析した結果、単一ゼロシーケンス"{0}"が誤って使用されることが多いことがわかった。 例えば、こんな風に。 MqlTradeRequest request={0}; この表記は、構造体の最初のフィールドに0を設定し、残りのフィールドをゼロにすることを意味する。 上記のコード行では、新しいルールによると、最初のフィールドのタイプがENUM_TRADE_REQUEST_ACTIONS で、値 "0" を欠く列挙型 であるためエラーとなります。 cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS' というのが正しい方法でしょう。 MqlTradeRequest request={}; pivomoe 2021.06.28 10:32 #13192 ありがとうございます。 Kira27 2021.06.28 11:02 #13193 Kira27:そこで、私はこう書いています。「標準ライブラリのこれらのメソッドを使うには、どのクラスから自分のクラスを 継承すればよいのでしょうか? 私の質問のどこが悪いのでしょうか))) Kira27 2021.06.28 12:21 #13194 これがそのコードです。何が問題なのでしょうか? //+------------------------------------------------------------------+ //| Test_Nasledovania.mqh | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #include <Object.mqh> #include <Trade\Trade.mqh> //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class Test_Nasledovania : public CObject { private: public: Test_Nasledovania(); ~Test_Nasledovania(); void test(); }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ Test_Nasledovania::Test_Nasledovania() { } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ Test_Nasledovania::~Test_Nasledovania() { } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Test_Nasledovania::test() { Buy -- Метод Buy не высвечивается как подключеный } //+------------------------------------------------------------------+ クラスの内容は以下の通りです。 Test_Nasledovania : public CObjectクラス自体は、標準ライブラリ全体の基本クラスCObjectを 継承しています)。 Vladimir Karputov 2021.06.28 12:34 #13195 Kira27:これがそのコードです。何が問題なのでしょうか?クラスの内容は以下の通りです。Test_Nasledovania : public CObjectクラス自体は、標準ライブラリ全体のCObject 基底クラスを継承している)。 取引クラスを接続するだけでなく、取引クラスのオブジェクトを作成し、作成したオブジェクト を通じてクラスのメソッドを参照する必要があります *** #include <Trade\Trade.mqh> //--- CTrade m_trade; // object of CTrade class *** void OnTick() { m_trade.Buy(*** } Artyom Trishkin 2021.06.28 12:35 #13196 Kira27:私の質問のどこが悪いのでしょうか))) なぜなら、ヘルプにはこれらすべてのクラスの継承が白黒で書かれているからです。 Kira27 2021.06.28 16:20 #13197 Vladimir Karputov:取引クラスを接続するだけでなく、この取引クラスのオブジェクトを作成し、作成したオブジェクト を通じてクラスのメソッドを参照する必要があります Expert Advisorやスクリプトでクラスメソッドを使うのは、もちろんオブジェクトの作成ですが、ベースクラスのメソッドを、子孫クラスで使うという質問です。なぜ、そこにオブジェクトを作る必要があるのか? Artyom Trishkin 2021.06.28 16:30 #13198 Kira27:エキスパートアドバイザーやスクリプトでクラスのメソッドを使用する場合、オブジェクトを作成することは言うまでもありません。 しかし、ベースクラスのメソッドを子孫クラスの内部で使用する場合について質問します。なぜそこでオブジェクトを作成する必要があるのでしょうか? CObjectから クラスを継承しています。 class Test_Nasledovania : public CObject 失礼ですが、どのような方法を期待されていたのでしょうか? Документация по MQL5: Стандартная библиотека / Базовый класс CObject www.mql5.com Базовый класс CObject - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Kira27 2021.06.28 16:33 #13199 以下は、オブジェクトを使用せずに継承クラス内でベースクラスのメソッドを使用する例です。 #property copyright "Copyright 2021, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //#include <Object.mqh> #include <Trade\Trade.mqh> //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class Test_Nasledovania : public CTrade { private: public: Test_Nasledovania(); ~Test_Nasledovania(); void test(); }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ Test_Nasledovania::Test_Nasledovania() { } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ Test_Nasledovania::~Test_Nasledovania() { } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Test_Nasledovania::test() { Buy } //+------------------------------------------------------------------+ に含まれるすべてのメソッドを使用したい。 私のクラスをどのクラスから継承すれば、オブジェクトを作成することなく、これらのクラスのメソッドを私のクラス内で使用できますか? もしそれが可能であればですが)) Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5 www.mql5.com MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций Kira27 2021.06.28 16:36 #13200 Artyom Trishkin: CObjectから クラスを継承していますね。すみません、どんな方法を期待していたのでしょうか? 私は同意する))、私は愚かだった))、これらのすべてのメソッドのベースクラスは、その子孫のクラスのメソッドを使用することはできません))) 1...131313141315131613171318131913201321132213231324132513261327...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
バージョン2981にアップデートした後、行にエラーが表示されるようになりました。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
mql5の特性、ヒントとコツ
イリヤス さん 2021.05.28 18:18
初期化シーケンス"{ ... "を拡張しています。次のビルドでは、定数だけでなく、任意の式を使用できるようにします。
この変更の代わりに、(通常の式と同様に)列挙型に対する定数の使用に制限が設けられます:定数が列挙型に属さない場合、対応するエラーが生成されます。
既存のコードを分析した結果、単一ゼロシーケンス"{0}"が誤って使用されることが多いことがわかった。
例えば、こんな風に。
この表記は、構造体の最初のフィールドに0を設定し、残りのフィールドをゼロにすることを意味する。
上記のコード行では、新しいルールによると、最初のフィールドのタイプがENUM_TRADE_REQUEST_ACTIONS で、値 "0" を欠く列挙型 であるためエラーとなります。
というのが正しい方法でしょう。
MqlTradeRequest request={};
そこで、私はこう書いています。「標準ライブラリのこれらのメソッドを使うには、どのクラスから自分のクラスを 継承すればよいのでしょうか?
私の質問のどこが悪いのでしょうか)))
これがそのコードです。何が問題なのでしょうか?
クラスの内容は以下の通りです。
Test_Nasledovania : public CObjectクラス自体は、標準ライブラリ全体の基本クラスCObjectを 継承しています)。
これがそのコードです。何が問題なのでしょうか?
クラスの内容は以下の通りです。
Test_Nasledovania : public CObjectクラス自体は、標準ライブラリ全体のCObject 基底クラスを継承している)。
取引クラスを接続するだけでなく、取引クラスのオブジェクトを作成し、作成したオブジェクト を通じてクラスのメソッドを参照する必要があります
私の質問のどこが悪いのでしょうか)))
なぜなら、ヘルプにはこれらすべてのクラスの継承が白黒で書かれているからです。
取引クラスを接続するだけでなく、この取引クラスのオブジェクトを作成し、作成したオブジェクト を通じてクラスのメソッドを参照する必要があります
Expert Advisorやスクリプトでクラスメソッドを使うのは、もちろんオブジェクトの作成ですが、ベースクラスのメソッドを、子孫クラスで使うという質問です。なぜ、そこにオブジェクトを作る必要があるのか?
エキスパートアドバイザーやスクリプトでクラスのメソッドを使用する場合、オブジェクトを作成することは言うまでもありません。 しかし、ベースクラスのメソッドを子孫クラスの内部で使用する場合について質問します。なぜそこでオブジェクトを作成する必要があるのでしょうか?
CObjectから クラスを継承しています。
失礼ですが、どのような方法を期待されていたのでしょうか?
以下は、オブジェクトを使用せずに継承クラス内でベースクラスのメソッドを使用する例です。
に含まれるすべてのメソッドを使用したい。
私のクラスをどのクラスから継承すれば、オブジェクトを作成することなく、これらのクラスのメソッドを私のクラス内で使用できますか? もしそれが可能であればですが))
CObjectから クラスを継承していますね。
すみません、どんな方法を期待していたのでしょうか?
私は同意する))、私は愚かだった))、これらのすべてのメソッドのベースクラスは、その子孫のクラスのメソッドを使用することはできません)))