[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 213

 
hoz:

以下は、StringGetChar 関数 https://docs.mql4.com/ru/objects/ObjectFind です。

なぜ、それが必要なのでしょうか?

教科書によると、文字の値を数値で返すとある。ここで、"c"は値99に 相当する。どうすれば理解できるのか?この機能にはどんな使い道があるのでしょうか?

だから、数字が返ってくる...。...そして、それは何をするものなのか?

文字列を扱えるようになりたいので、この関数に出会いました。だから聞いて いるんです。


ANSI文字は、コンピュータの中では1バイトの情報で符号化されています。例えば、"s"はコンピュータでは01100011、つまり同じ99と表記される。StringGetChar()が生成する数値です。ファイルからバイナリデータを読み込む際によく必要とされる関数で、例えばCRCなどを計算する際にはなくてはならないものです。
 
すべての良い一日、あなたはEAが接続されている通貨(RSI、MACDを使用)またはそれが十分であるか、または単にアルゴに規定されている上にEAを置く必要がある場合は、アドバイス...?
 
laveosa:
すべての良い一日、私はEAが接続されている通貨(RSI、MACDを使用して)またはそれが十分であるか、またはちょうどアルゴに規定されて置くべきかどうかをアドバイス...?

これはナンセンスだ。何を書いているのかを考える。そして、答えを待つ。
 
laveosa:
ただ、EAが付く通貨(RSI、MACDを使用)にEAを付けた方がいいのか、それともアルゴに規定されているだけで十分なのか...知りたいです。
チャート上のインジケーターの働きは、例えば外部ファイルやターミナル内のグローバル変数、チャートオブジェクトなどを通じて情報をやり取りしている場合を除き、EAの働きとは何の関係もないのです。
 
TarasBY:
(敬称略): テレパス!
 
borilunad:

チャート(コメントと混同しないように)に書き込むには、数値でコード化する必要があります。99と書くと、チャート上に's'が表示されます。私はまだやっていませんが、Docの中に、どのようなフォントで、どのようなサイズで、X軸とY軸の向きをピクセル単位で、などなど、すべてやり方が載っています。もうそれだけで足りないなら頑張れ!でも、かなり時間がかかりそうですね。がんばってください。


Borisさん、特殊な関数(comment, alert ... print)ではなく、オブジェクトに直接出力するということですか?例えば、モノの名前に、あるいは写真に、です。そうなんですか?

これについては、残念ながら教科書に詳しい ことは書かれていませんでした。

 
TarasBY:
チャート上のインジケータの動作は、外部ファイルやターミナルのグローバル変数、グラフィックオブジェクトなどを通じて情報を交換しない限り、EAの動作とは何の関係もないのです。

ありがとうございました。
 
hoz:

以下は、StringGetChar 関数 https://docs.mql4.com/ru/objects/ObjectFind です。

なぜ、それが必要なのでしょうか?

教科書によると、文字の値を数値で返すとある。ここで、"c"は値99に 相当する。どうすれば理解できるのか?この機能にはどんな使い道があるのでしょうか?

だから、数字が返ってくる...。...そして、それは何をするものなのか?

文字列を扱えるようになりたいので、この関数に出会いました。だから聞いて いるんです。

例えば、EA名、通貨ペア、EAがインストールされているTFを元に、EAに固有のマジックナンバーを自動的に割り当てる機能があるのですが、このマジックナンバーは、EAがインストールされているTFの通貨ペアと、EAがインストールされているTFの通貨ペアの組み合わせで決まります。

//+----------------------------------------------------------------------------+
int GetMagic(string symbolstring, int multiplier){
   int res=0;
   int len=StringLen(symbolstring);
   for(int i=0; i<len; i++)
       res+=StringGetChar(symbolstring,i);      
   return(res*multiplier);
}
//+----------------------------------------------------------------------------+

コール

Magic=GetMagic(WindowExpertName()+Symbol(),Period());
 

だから、ここhttps://www.mql5.com/ru/articles/1524 のように、いろいろと曲がったコードを読まなくてもいいのです。

(そこで、たくさんのバグに気づきました。作者が何を考えてこのコードを書いたのかは知りませんが)。

このバリアントのアルゴリズムをご教示ください。保留中の注文が、例えばトレンドラインなどのオブジェクトに従うようにしたいのですが。あるいは、保留中のオーダーがラインの後ろに立つようにするか...。

どのように実装されているのですか?よくわからないのです。

オブジェクトを作ればいいというのは理解できました。でも、価格がオブジェクトの "後ろ "にある場合は、何かしなければならないし、価格がライン上にある場合は、保留中の注文がその上にある...というように、何とか指定しなければなりません。

 
hoz:


Borisさん、特殊な関数(comment, alert ... print)ではなく、オブジェクトに直接出力するということですか?例えば、オブジェクトの名前に、あるいは画像に、です。そうなんですか?

これについては、残念ながら教科書に詳しい ことは書かれていませんでした。


ビクター、ドックで検索してみたよ。そこで、手動売買に使っていたCodeBaseのインジケーターにこんなコードがありました。しかし、それは決して万能ではないことがわかった。そこで、ほとんどすべてのインジケータを捨て、今ではExpert Advisorはそれ自体がインジケータであり、他のものはほとんど必要ないのです

ちなみに、Baseを掘り返してみると、いろいろと勉強になりますよあなた自身がエキスパートでなければ、ドックのすべてを理解することはできないのです教科書にはもっと詳しく書かれていますが、すでに多くのことが失われています。