MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 621

 
Vitaly Gorbunov:
目的は手段を正当化するものでなければならない。必要なコンポーネントのソース コードがあれば、すべてを1つのEAにまとめることが容易になります。それができない場合は、すべてのコンポーネントのモジュール間の通信を整理する必要があるが、これは初心者のための作業ではない

初心者は、「必要な部品のソース」の書き方を覚えることが第一の課題である。そうしないと、初心者がたくさん集まってきて......火星人の脳をハッキングしていると非難されることになります。

 
Alexey Viktorov:

初心者の場合、「必要なコンポーネントのソース」の書き方を覚えるのが第一の課題です。そうしないと、初心者がたくさん集まってきて、火星人の脳をハッキングしていると非難されることになります。

そうなんだ!一般に、プログラミングを学ぶ場合、簡単なプログラムから始めて、徐々に複雑なプログラムへと移行していくことが望ましいとされています。そうすれば、自分が知らないものが欲しいというような疑問はなくなるはずです。

 
こんにちは、私はEAのソースコードを持っています、それは特定の指定されたアカウントでのみ動作するように、それにいくつかの保護を追加するのに役立ちますしてください。
https://www.mql5.com/ru/articles/1572 でやってみた。
試してみたいのですが、うまく動作させることができません。
完全なアルゴリズムを見つけたが、どこに置けばいいのか分からない
#property copyright "Copyright © 2009, Sergey Kravchuk"
#property link      "http://forextools.com.ua"

int start()
{  
  string char[256]; int i;

  for (i = 0; i < 256; i++) char[i] = CharToStr(i);
  // номер счета на котором разрешено работать эксперту
  int    AllowedAccountNo = StrToInteger(/* 49153 */ char[52]+char[57]+char[49]+char[53]+char[51]); 
  string AllowedServer = /* UWC-Demo.com */ char[85]+char[87]+char[67]+char[45]+char[68]+
  char[101]+char[109]+char[111]+char[46]+char[99]+char[111]+char[109];

  if (AccountNumber() != AllowedAccountNo || AccountServer() != AllowedServer) 
  {
    Print("Вы не имеете права использовать этот скрипт!");
    return(1);
  }
  
  Print("Вы можете использовать этот скрипт!");
}
Защищайтесь, господа разработчики!
Защищайтесь, господа разработчики!
  • www.mql5.com
Вопросы защиты своей интеллектуальной собственности все еще остаются большой проблемой. В статье описаны основные принципы защиты разработок на MQL4, используя которые можно если не совсем побороть воровство результатов многодневного труда разработчика злоумышленником, то, по крайней мере, настолько усложнить вору его "труд", чтобы ему просто...
ファイル:
333.mq4  16 kb
 
helping123:
こんにちは、EAのソースコードを持って、それが特定の指定されたアカウントでのみ動作することをそこに保護を追加するために助けを求めてください。
https://www.mql5.com/ru/articles/1572 に従ってやってみた。
参考にしたいのですが、お役に立てるかどうか自信がありません。
完全なアルゴリズムを見つけたが、どこに置けばいいのか分からない

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム


FXwin さん 2018.09.14 11:48

bool StopTrade = true;

int start() {
//---------------------------------------------------------------------------------------------------------------+
//  привязка к конкретному торговому счету
  if(AccountNumber() != 555777){ 
     Comment("Invalid account... forex-time@mail.ru");
  if(StopTrade) Alert("Invalid account... forex-time@mail.ru"); StopTrade=false; return(0);}
//---------------------------------------------------------------------------------------------------------------+  

 
Alexey Viktorov:

本当に...当初の課題は何だったのでしょうか?私も覚えていません...:)))))))))))))))))))))))))))))))))))))))))))))

あなたたち子どもは、本当に何をやっているんですか、水をあおっているんですよ。

MetaEditorに入り、コマンドを入力するだけです。ファイル->作成...

これにより、異なるダミーファイルを持つフォームが表示されます。

特に、ダミーファイルになります。

- エキスパートアドバイザー

- カスタムインジケータ

- スクリプト

- 図書館など

Expert Advisor、Custom Indicator、Scriptの3つの項目が対象です。

このダミーを比較してみましょう。

Expert Advisorでは、イベントがあります。

-OnInit(), OnDeinit(), OnTick(), OnTimer, OnChartEvent() ...すべて、これ以上ないほど。

スクリプトでは、イベントを用意しています。

- OnStart() ... 以上で終了です。

をインジケータで表示すると、イベントが発生します。

- OnInit(), OnCalculate(), OnTimer, OnChartEvent() ...すべて、これ以上ないくらい。

ここで当然問題になるのは、これらのオブジェクトをどのように結びつけるかということです。

MQLでは、これらのオブジェクト間のデータストリームは完全に分離されており、両者の間に接続は存在しないし、存在し得ないことが判明したのです。

しかも、この事実をMQLの作り手が「良し」としていることに驚かされます。

また、例えばC++の場合、BASICトランスレータやJavascriptなどのトランスレータを簡単に呼び出し、例えばAndroidのプログラミング環境に切り替えることができるんだ。

MQLのフレームワークでは、indicator環境ではOnStart()コマンドを受け付けないため、いわゆる「スクリプト」を作成することすらできません。

どんな変人なんだ?

そして、そのような醜いものが、MQLには十二分にあるのです。

すべてのステップにいます。

MQLの説明を読みましたが......他にやることがないので、驚きました。

その一方で、MQLの制作者たちは、MQLはC++の子孫であると声高に宣言している。

もちろん、申し訳ないのですが、MQLのクリエイターの方々にお聞きしたいのは、「何の後継者?- その醜さに?


思わずMQLを有名な1Cプログラミング環境と比較してしまいます。また、彼らはC++の後継者であると主張している。

しかし、そこではすべてがもっとまっとうな方法で行われています。

そして、グラフィカルなオブジェクト、モジュール間の通信など、さまざまなものがあります。

そして、MQLには何があるのでしょうか?

組み込みクラスも、スレッド関連オブジェクトも......まったくない。

それに、ターミナルの数学的な殻については何も言っていない!!!

それは、驚きのために全く別の話題です!!!

 
neverness:

あなたたち子どもは、本当に何をやっているんですか、水をあおっているんですよ。

MetaEditorに入り、コマンドを入力するだけです。ファイル->作成...

これにより、異なるダミーファイルを持つフォームが表示されます。

...

それは、驚きのために全く別の話題です!!!

スクリプトのようにOnCalculate()の中にOnStart()を記述することを妨げるものはありません。

 
Vitaly Muzichenko:

スクリプトのようにOnCalculate()の中にOnStart()を記述することを妨げるものはありません。

動作コードの例ですが、例えばインジケータ環境で楕円などを構築する方法を教えていただけませんか?
 
Infopanel
Infopanel
  • www.mql5.com
Пример создания простого и быстрого меню с поддержкой нескольких языков. В примере выводится информация о цене, времени до следующего бара, балансе счета, количестве ордеров. Данный пример можно использовать в качестве шаблона для создания своих разработок. Минус данного метода при добавлении, удалении или редактировании объектов необходимо...
 
neverness:
例えば、インジケータ環境で楕円などを構築するコードの動作例を示してください。

インジケータは、あらゆる種類のグラフオブジェクトを構築するのに適した場所です。

 
Vitaly Gorbunov:

https://www.mql5.com/ru/code/19220

オブジェクトを扱う 例として、インジケータ。

私たちは子供ではなく、完全にまともな人間です。

小声で、誤魔化すようなことはやめましょう。

もう一度、質問を繰り返す。

スクリプトオブジェクト(OnStart()、例えば楕円)が構築されたインジケーターの簡単なコードを教えてください。

手順は以下の通りです。

MetaEditorに入ります。File->Create...をクリックします。

Indicatorをクリックします。

そして、この環境では、スクリプトオブジェクトのコード(OnStart()、例えばellipse)を入力します。

とても簡単です。

グッドラック !!!

つまり、例のようにフォームにオブジェクトを放り込んだり、何にも依存しないオブジェクトを作成するのではなく、このオブジェクトをインジケータの計算環境に導入するのです.

つまり、インジケーターのデータフローが変われば、グラフィックオブジェクトも変わるのです。

あなたの例のように、何にも依存しないチャート上のダミーに過ぎないのではありません。