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

 
Alexey Belyakov:

https://www.mql5.com/en/code/23479 これは使えませんね。

やってみたけど、コードにひっかかりがある、私の落書きに入りたい人はいないと思う、もう一度やり直したい。


だから、ここにあるんです。

datetime some_time=TimeCurrent();
extern string Symbol3 = ""; //Инструмент (""текущий по умолчанию)
extern double P=5;       //Таймфрейм


int start()
{
int  raznV;
int percV;
int SD=5; // переменная для поиска разницы объёма
int sig;

double VAL2=MathAbs(iVolume(NULL,P,2));  //Т.Объём
double VAL1=MathAbs(iVolume(NULL,P,1));


raznV =MathAbs(iVolume(NULL,P,2)-iVolume(NULL,P,1));  //Разница объёма
percV =MathRound(raznV/(VAL1*0.01)); // Разница в (%)

//Цикл сканирования последних свечей SD,на которых есть разница равная 50%.
for (int i=SD; i>=0; i--)
{
int  sig=(raznV[i])>50;


//Если  есть нужная разница, значение будет больше нуля.
if (sig>0)
{
Alert ("Сигнал");
}

if (SD>5)
{
ObjectDelete("signal4");
} 


return(0);

int sig=(raznV[i])>50; ここからがヒヤヒヤものです。どう見せたらいいのかわからない。そして、過去のローソク足で少なくとも50%の乖離を検出する必要があります。

あなたのコードは、あまり勉強熱心でない小学1年生が書いた作文のように美しいです - 悪気はないのですが、少なくともあなたはコメントを書くことができます :)

特にraznV[i]が良かったのですが、PineScriptから来た のでしょうか?おいおい、これじゃ普通のプログラミング言語じゃないか))

赤:重要なミス、黄:欠点

 
こんにちは。ムービングでの ネガティブムーブについて質問です。その結果、この値で取引を開始しても終了してもうまくいきません。この問題はどうすれば解決するのでしょうか?
 

こんにちは。dllからのインポートについて教えてください。trans2quik.dllから関数をインポート しようとした。

#import "trans2quik.dll"
   int _TRANS2QUIK_CONNECT@16(string lpcstrConnectionParamsString, int& pnExtendedErrorCode[], string lpstrErrorMessage, int dwErrorMessageSize);
#import

これは、DLLがコード0(TRANS2QUIK_SUCCESS)を返したので、成功しました。他の関数をインポートしようとすると、コンパイラは長い名前についてのエラーを出します(フォーラムで、関数名に31文字以上は許されないと知りました)。他にどのように私は関数をインポートすることができますか? 私はここで説明したように、関数番号でそれを行うことを試みた(https://docs.microsoft.com/ru-ru/cpp/build/exporting-functions-from-a-dll-by-ordinal-rather-than-by-name?view=vs-2019)、しかし、私はそれを間違っていたかどうか、またはコンパイラは、番号(期待名を書いて)私はラッパーを必要とするDLLに参加するために理解していない誓うことはできませんか?それともDLL自体で関数名を編集できるのでしょうか? もし重要であれば、DLLアーカイブの中に.hと.libのファイルがあります。

 
Darirunu:
こんにちは。ネガティブミュービングシフトについて質問です。そのため、この値で取引を開始しても、終了してもうまくいきません。どうすればこの問題を解決できるのでしょうか?

コードの一部を添付してもらえますか?

 
プログラム上でテスト速度を変更することは可能ですか?
 
Yevhenii Levchenko:
プログラム上でテスト速度を変更することは可能ですか?

よろしい

 
f1nik:

こんにちは。dllからのインポートについて教えてください。trans2quik.dllから関数をインポート しようとした。

これは、DLLがコード0(TRANS2QUIK_SUCCESS)を返したので、成功しました。他の関数をインポートしようとすると、コンパイラは長い名前についてのエラーを出します(フォーラムで関数名に31文字以上が許されないことは知っています)。他にどのように私は関数をインポートすることができますか? 私はここで説明したように、関数番号でそれを行うことを試みた(https://docs.microsoft.com/ru-ru/cpp/build/exporting-functions-from-a-dll-by-ordinal-rather-than-by-name?view=vs-2019)、しかし、私はそれを間違っていたかどうか、またはコンパイラは、番号(期待名を書いて)私はラッパーを必要とするDLLに参加するために理解していない誓うことはできませんか?それともdll自体の関数名を編集してもいいのでしょうか? もしそれが重要なら、dllの入ったアーカイブには.hと.libのファイルがあります。

MQLでは、番号で指定することはできません。

 
Koldun Zloy:

MQLでは番号でできない。

ありがとうございます。つまり、ターミナルとtrans2quik.dllの 間にはDLLアダプターしかないのです。
 
f1nik:
ありがとうございます。つまり、ターミナルとtrans2quik.dllの 間にはDLLアダプターしかないのです。

文字列を#define str "longlong string"として、あるいは+やstring関数で2つの文字列としてスリップさせてみたことはありますか?

結局、Commentも文字列の長さには限界がありますが、変数は数行でモニターに収まらないほど突っ込めます。

 
こんにちは。どのスクリプトもロットサイズに応じてマージンを計算するので、FXで 指定したマージンに応じて ロットサイズを計算するスクリプトや関数を教えてください。BOOのように、入金時に一定額の無料資金で開設できると便利だと思います。