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

 

新しいWebAssembly技術の概要がhttps://habrahabr.ru/post/342180/ に掲載されており、なかなか興味深い。

WebAssembly (WASM) — новый бинарный формат, позволяющий запускать код в браузере...

WebAssemblyの応用例。

-ロードタイムの短縮
-計算速度の向上
-C/C++のソースコードを使用する


MQLコードコンパイルのためのウェブサービスの可能性についての中程度の噂を考慮すると。
WebAssemblyをベースにしたブラウザから直接カスタムExpert Advisorを実行するプロジェクトの実現性には、相応の疑問があります。
Знакомство с WebAssembly
Знакомство с WebAssembly
  • 2012.11.17
  • habrahabr.ru
Эта статья основана на моём выступлении на ITSubbotnik, прошедшем в Рязани 14 октября 2017 года. На русском пока что довольно мало материала на эту тему, надеюсь что статья будет вам полезна. Disclaimer: Автор не является экспертом ни в WebAssembly, ни в JavaScript. Данная статья есть компиляция мыслей и идей, полученных из выступлений других...
 
Andrey Khatimlianskii:

過去ログを出せば、もっと意味がある。Expert Advisorもターミナルも。

端子タブ

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

タブエキスパート

        Line 8103: 2    16:29:01.266    Forex V2 EURNZD,M1: open #4448742  sell 0.02 EURNZD at 1.68131 ok
        Line 8104: 0    16:29:01.266    Forex V2 EURNZD,M1: Order #4448742  open

        Line 10145: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 1 закрытия/удаления ордера #4448742  Ошибка: 3
        Line 10146: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10147: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 2 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10148: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10149: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 3 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10150: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10151: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 4 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10152: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10153: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 5 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10154: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10155: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 6 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10156: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10157: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 7 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10158: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10159: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 8 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10160: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10161: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 9 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10162: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10163: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 10 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10164: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10165: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 11 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10166: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10167: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 12 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10168: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10169: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 13 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10170: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10171: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 14 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10172: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10173: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 15 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10174: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10175: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 16 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10176: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10177: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 17 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10178: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10179: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 18 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10180: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10181: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 19 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10182: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10183: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 20 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10184: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10185: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 21 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10186: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10187: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 22 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10188: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10189: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 23 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10190: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10191: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 24 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10192: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10193: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 25 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10194: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10195: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 26 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10196: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10197: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 27 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10198: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10199: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 28 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10200: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10201: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 29 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10202: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10203: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 30 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10204: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        
        Line 10243: 2   20:37:39.760    ExpertName EURNZD,H1: close #4448742  sell 0.02 EURNZD at 1.68131 at price 1.68356

エラー3以降は、本当にクロージングが行われません。理解することができました。

Expert Advisor #1がクローズし、2つ目のExpert Advisorが同じポジションを同時にクローズしようとしていた。

作業ロジックを修正したら、エラーが出なくなりました。


BUT: ループ内のOrderClose()に渡されるパラメータが変更されていない場合、エラー番号は#3から#4108に変更されます。

なぜ、最初にエラー#3、次に#4108が投げられるのですか?- これが、残された疑問です。

{タイミングを見ると、ロックされた注文を閉じようとし(この場合、エラー139自体は表示されない)、それが閉じられた後(それに応じて注文のロックも解除される)、エラー3が発生します }。


なぜターミナルは注文がブロックされたという特定のエラーを出さず、代わりに一般的なエラー3が出るのですか?

 
Kirill Belousov:

BUT: ループ内のOrderClose()に渡されるパラメータが変更されていない場合、エラー番号を#3から#4108に変更する。

なぜエラー#3が先で、#4108が後なのですか?- これが、残された疑問です。

これは、OrderSelectが1個あったバージョンのコードですよね?そうすると、4108が正当化される。

3は他のEAがポジションをクローズしたとき、4108は既にクローズしたポジションを 決済しようとしたときです。

 
Andrey Khatimlianskii:

これは、OrderSelectが1個あったバージョンのコードですよね?そうすると、4108が正当化される。

3は他のEAがポジションをクローズしたとき、4108は既にクローズしたポジションを クローズしようとしたときです。

そうですね。

しかし、すでに決済されている注文を決済しようとすると、エラー139が発生しないのはなぜですか?

結局、むしろエラー139という事態に陥っている。そうでしょう?

 

不正確なエラーテキスト

void f( int &[] ) {}

class A
{
public:
  int Array[];
  
  void f2() const
  {
    f(this.Array); // 'Array' - constant variable cannot be passed as reference
  }
};
 
悪態をついてはいけない
Print(NULL); // 'NULL' - expression of 'void' type is illegal
 
Kirill Belousov:

正解です。

しかし、すでにクローズ送信された注文をクローズしようとすると、なぜエラー139が出ないのでしょうか?

結局、むしろエラー139という事態に陥っている。そうでしょう?

わからない。しかし、それもバグとは呼べない。

 
Andrey Khatimlianskii:

どうだろう。しかし、これもバグとは言い難い。

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

端末のログを見ると、エラーメッセージ 3はポジションを閉じた後に 発生しており、サーバーのロックを検知したはずのタイミングではありません。

エラーメッセージ139は、ほぼ0.5秒前に表示されていた可能性があります。この間、Expert Advisorは、注文が閉じられた後、エラー3が発生するように「ハング」しています。

ちなみにエラー3 Invalid Parametersはターミナルのログとその出力による4108だけで、EAタブにしか出ません。4108はクライアント側の処理のようですね。

ただ、科学的なゲージ法で手探りするのではなく、コードに落とし込むためのロジックを知りたい/理解したい...。)

これ以外にどんな状況でエラー139が出るのでしょうか...?

 
Kirill Belousov:

これほどまでにエラー139が出る状況はないのでは...?

保留中の注文/SL/TPが トリガーされたとき、またはポジションがストップアウトによって閉じられたとき(サーバー上でも)。

4108はどうだろう。
しかし、もう一度言いますが、私はそれを調べる理由がないと思います - 2つのEAが同時に閉じる命令を出した場合、そのうちの1つは間違いなくエラーになります(どんな違いがあるのでしょうか)。
処理は非常にシンプルで、OrderSelectを行い、OrderCloseTimeをチェックします。

 
Ilnur Khasanov:

wtf
司会者より
残念ながら、技術的な不具合により、説明文が削除されてしまいました。 再度ご記入の上、製品をお送りいただき、ご確認ください。
ご迷惑をおかけして申し訳ございません。

不便どころか、数回(毎回-10日待ち)、削除して、おっと、ごめん、消しちゃった、何とか自分で復元して、また10日待ち、というのは面倒です。- そして、それを実行しようとするとサイトがクラッシュしてしまう...。

これは一体何なんだ?どんな不具合が起きたら、これが消えてしまうのでしょうか?回復するための履歴がないのでしょうか?説明文は数日前からお蔵入りになっています。
今回、なぜ司会者からのメッセージがポップアップされなかったのでしょうか?

このワイプの問題は、1回では起きないというのが事実です。この不具合とされるものは、実は不具合ではないのです(おそらく遅延)。- コメントをどうぞ...

そして、ぜひ直してください。できないなら、私を雇いなさい。1週間後に2,000ユーロでやります。

なんて大失敗なんだ。

実際、消されたものは復元されるのでしょうか?司会者とのやりとりの半分が消えてしまった。フォーラムからのメッセージが消えている。そして、モデレーターは、空白になったメッセージを削除しています。
なぜメンテナンスモードがないのですか?- まずモードが起動し、次に作業中、そしてモードが復帰する、という順序がよいでしょう。

メッセージを投稿した途端、サイトがダウンしている。更新しようと思ったら、サイトがダウンしている...。

上のコメントは4日前に書いたものですが、すでに修正した発言とともに戻ってきました。
これでは仕事にならない......まあ、本気じゃないんですけどね......。
司会者への新たなコメントで、これ以上失わないように、抜けていた記述を重複して書きました。
メールで送るか、コメントに添付するか、24時間待って再チャレンジするか。