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

 

今夜は、英語のページを翻訳することにしました。

"このサイトではクッキーを使用しています。クッキーポリシーについて 詳しくはこちら"

Yandex Translatorにリンクを打ち、翻訳を読みました。MQL5のサイトにアクセスすると、次のように表示されました。

他の言語のページをここに翻訳する場合、このようなことがないようにするには、どのような方法が正しいのでしょうか?
 
Vladimir M.:

今夜は、英語のページを翻訳することにしました。

"このサイトではクッキーを使用しています。クッキーポリシーについて 詳しくはこちら"

Yandex Translatorにリンクを打ち、翻訳を読みました。MQL5のサイトにアクセスすると、次のように表示されました。

これを避けるために、他の言語からページを翻訳する正しい方法は何ですか?

コピーペーストを使用するユーザーを特定するために、テキストに見えないワイルドカードがユニークな組み合わせで含まれているとは、どう考えても思えません。
でも、そうかもしれない...。

 

友人たちよ、私は君たちの経験に訴え、正しい解決策を見出すために指導を仰いでいるのだ。

ある一定時間毎(数分毎)にデータをファイルにアンロードし、外部プログラムを実行し、ファイルからデータを読み込むEAがあるのですが、このようなことは可能でしょうか?全体のサイクルは600ミリ秒かかります。

ストラテジーのテスト時に、外部プログラムが終了するまで待機させる(つまり、この間は価格の流れを一時停止させるか、600ミリ秒間ティックを飛ばすのが理想)にはどうしたらよいでしょうか。

そうでなければ、外部プログラムの実行中に、ストラテジーのテスト中に数日分のティックが飛んでしまうことになります :-(.ビジュアルテスターでは、EAが動作します。しかし、数年分の履歴で戦略を検証するとなると、とてつもない時間がかかる。

 
fxsaber:

まったく理解できない。以下はそのコードです。

ポインタを参照渡しするとなぜか文句を言われる。同時に、f関数は冷静にポインタを参照で受け取っている。


その結果

int演算子は問題なく呼び出されましたが、ポインタ演算子はそうではありませんでした。

ポインタをオーバーロードした演算子に参照渡しするとエラーが発生します。 この現象は最新のビルドで発生し、以前は問題ありませんでした。 すでに数ヶ月前からヘルプデスクに申請を出していますが、回答も挨拶もないのが通常です。

ポインタ配列の場合は、参照で送る以外に方法がないため、特に重要です。

class A
{
 public: 
  A* operator+(const A*const& array[]) { return NULL; }
};

だから、1554のビルドにはまだ手を付けていない。

 
romachandr:

まあはてなとしては(悪いという意味ではない)。

専門家

1. コマンドシェルスクリプトファイルの名前は

2.外部アクションの完了を示すファイルが期待される。

3.信号ファイルを削除する


コマンドシェルスクリプト。

1. 外部プログラムの実行

2. 信号ファイルの作成

ゆえに:リンクは自動的に挿入されたものであり、全く関係ない。

ところで、外部プログラムはどのように実行するのですか?ProcessCreate()やShelExecute()を通せば、できたハンドルをWaitForSingleObject()に渡せるが、これはwinapiの型宣言に踊らされている。

 
pavlick_:

まあはてなとしては(悪いという意味ではない)。

専門家

1. シェルスクリプトファイルが起動される

2.外部アクションの完了を示すファイルが期待される。

3.信号ファイルを削除する


コマンドシェルスクリプト。

1. 外部プログラムの実行

2. 信号ファイルの作成

ゆえに:リンクは自動的に挿入されたものであり、全く関係ない。

ところで、外部プログラムはどのように実行するのですか?もし、何らかのprocessCreate()やShelExecute()を通せば、その結果のハンドルをWaitForSingleObject()に与えることができるが、これは型宣言のwinapiとのダンスである。

外部プログラムは、ShellExecuteW()で起動します。

プログラム実行の出力には、ファイルが生成されます。実は、信号ファイルでもいいんです。

しかし、この時テスターを中断する方法がわからないのですが?

winapiは実質的に詳しくないのですが。本当に役に立つのなら、もっと深く追求してもいいと思っています。

 
romachandr:

外部プログラムはShellExecuteW()で起動される。

プログラム実行の出力にファイルが生成されます。要するに、信号ファイルでもいいんです。

しかし、この時テスターを一時停止する方法がわからないのですが?

winapiはあまり詳しくないのですが。本当に役に立つのであれば、もっと深く追求してもいいと思っています。

winapiは以下のような仕組みになっています。

作成時に返されるHANDLEで記述されるオブジェクト(スレッド、プロセス、ミューテックス、・・・)には、シグナルフラグがあります。プロセスの場合は、終了時に設定する。WaitForSingleObject()はフラグが設定されるまでカレントスレッド(あなたのEA)の実行を停止します。つまり、EAは外部プログラムが終了した後にWaitForSingleObject()を終了することになります。

ShellExecuteW()はHANDLEの代わりにHINSTANCEを 返すので、WaitForSingleObject()関数でうまくいくかどうかわかりませんが、試してみる価値はあると思います。もし失敗したら、例えばShellExecuteExを使うべきでしょう(ただし、その内部では非自明な引数が渡されます)。

http://fkn.ktu10.com/?q=node/633

https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx

 
pavlick_:

Winapiには以下のような仕組みがあります。

作成時に返されるHANDLEで記述されるオブジェクト(スレッド、プロセス、ミューテックス、...)には、シグナルフラグがあります。プロセスの場合は、終了時に設定する。WaitForSingleObject()はフラグが設定されるまでカレントスレッド(あなたのEA)の実行を停止します。つまり、EAは外部プログラムが終了した後にWaitForSingleObject()を終了することになります。

ShellExecuteW()はHANDLEの代わりにHINSTANCEを 返すので、WaitForSingleObject()関数でうまくいくかどうかわかりませんが、試してみる価値はあると思います。もし失敗したら、例えばShellExecuteExを使うべきでしょう(ただし、内部で自明でない引数を渡してしまいます)。

http://fkn.ktu10.com/?q=node/633

https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx

ご指摘ありがとうございます。

調べてみようと思います。

 
romachandr:

しかし、この時テスターを一時停止する方法がわからないのですが?

#import "Kernel32.dll"
 void Sleep(int milliseconds);
#import


void OnTick()
{
  while(! Condition()) Kernel32::Sleep(10);
}
 
何がそんなに難しいのか? 結果ファイルを見続ける+ネイティブスリープで 問題解決