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

 
Roman:

現在の現実と矛盾する部分が多いからです。
そして、その矛盾を言い訳にしようとしてるんですね。
それどころか、「刻みは点にはならない」と書いたのです
自分の中の、発明された点です。
4桁しかなかった時代、Pointが正確に対応していたことに鑑みて。
でも、5桁目が導入されてからは、言い訳をしながら名前を作るようになったんですね。

いいえ、そんなことはありません。距離を点ではなく、目盛りで表示することを提案しましたね。

それはナンセンスだ。距離は距離です。そして、ティックサイズとは、1回の値動きが最小になるような歩幅のことです。

だから、A地点からB地点までの距離ではなく、その距離を移動するのに必要なステップ数を求めているのです。

言っとくけど、全部ごっちゃになってるからね・・・。

あなたの現実は、ちょっと手抜きのようですね。受け入れているコンセプトの半分も入っていないのです。頭から何か出ていますね。

 
Roman:

おそらく、関数から戻り値を返さなければならないからでしょう。

返信ありがとうございました。しかし、まだ解決していません...。関数パラメータ"str " の変更状態をMQLに返す必要があります。

extern "C" __declspec(dllexport) wchar_t* __stdcall ToString(wchar_t* &str)
{
        str = L"-- Я изменил параметр str :) --"; // Вот это я хочу получить!
        return L"--- Привет! ---";
}

現時点のMQL4では。

#import  "Win32Project1.dll"
   string ToString(string &str);
#import

まあ、関数呼び出し 自体もだけどね。

string str = "";
Print("-> Метод: " + ToString( str ));
Print("-> Параметр: " + str);

その結果、こうなりました。

つまり、パラメータとして値が渡されるが、正しくない...。この問題を解決するにはどうしたらいいのでしょうか?:)

 
Vadim Lin:

返信ありがとうございました。しかし、まだ解決していません...。関数パラメータ"str " の変更状態をMQLに返す必要があります。

現時点のMQL4では。

まあ、関数呼び出し 自体もだけどね。

その結果、こうなりました。

つまり、パラメータとして値が渡されるが、正しくない...。この問題を解決するにはどうしたらいいのでしょうか?:)

紳士はトローリングのために24時間休息する。
 
Artyom Trishkin:

端末がクラッシュした場合は、再起動が必要です。このインジケータを再度チャート上に配置するか、このインジケータのデータを使用するExpert Advisorを実行する必要があります(その後、Expert Advisorがアクセスする際にこのインジケータ自体をロードします)。この場合(チャート上にインストールされたプログラムの自動ロードによる端末の通常の再起動でも)、インジケータはすべての線を新たに描きますので、何かを保存する必要はありません。これらの行は後で読み直すことができます。しかも、とにかく読まなければならない。

EAがインジケータによって作成された ラインのみを監視するためには、インジケータによって作成されたラインの名前を見て、名前の中で繰り返される部分文字列を見つけようとすれば十分です - すべてのラインに対して同じです。これらの部分文字列から必要な行を探します。

簡単なことです。インジケータが動作しているときに、オブジェクトのリストを見るだけです。

話が脱線している!?議論が進めば進むほど、話がずれていく!?:)

男は、価格が一線を越えたとき、EVENTを手に入れるだけでよかったのだ...。

次に、なぜ私の例が「問題あり」なのか、推測を始めた...。実際には、原理的に設定されていた問題を解決しているのだが。次ページ - 作者の想像力、私もできる限り協力しました))


オフトピックなら...と端末に過負荷をかけると、回線はどこにも行かず、その場に留まる可能性があります。もし、名前が変わっていたり、タグが付けられていたら、従来の論理で、これらの行はある時点ですでにトリガーされており、無視されるべきであると考えることができる。しかし、それは当面の課題ではない))それに、仮にインジケータが線を引き直したとして、それがどうした?すでにトリガーしているものがあると、どのように判断するのでしょうか))

もし、チャート上に監視が必要なライン以外何もないのであれば(著者が言うように)、名前でフィルタリングする必要すらないのです。

しかし、もちろん、線を一切引かずに、すべてのレベルをファイルに保存して、どれがすでに動作したかを確認することです。そして、ターミナルをオーバーロードすると、オブジェクトの名前なしでそれらを覚えています))。

 
Roman:

男の論理は一体どこにあるんだ。
このため、重大な誤りであり、意図的に行えば、転用となる))

Petya:そして、論理とは何ですか、ヴァシリー・イヴァノヴィッチさん?

V.I.:まあ、単純な話、ほら、マッチがあるか?

Petya:そうなんです!

V.I.:だから、タバコを吸って、タバコを吸ったらお酒を飲んで、お酒を飲んだら女の子と付き合う、わかりますか?

Petya:そう、シンプルなんです!(笑)。

ペチカ、通りすがりの赤軍兵士に「マッチ持ってる?

赤軍派:いいえ。

Petya:だから「ホモ」なんですね。



LOGICは、まあ、とても不思議なもので、LOGICの下では、期待値を調整する必要がない

もし開発者が新しいデータ型 ENUM_TIMEFRAMESを組み込んだら、プログラムの他の部分でさらにそれを利用する-これが論理です。


SZS:もちろん、MT4はトレードに必要なものを知っている人たちが設計したもので、「もうひとつの端末」は宇宙人たちが書いたものだ・・・ということもできます。しかし、我々はこのフォーラムのコミュニケーション形式を超えて行くだろう、我々はサボタージュについて話をすべきではない理由です - 我々は与えられたものを使用して、我々は何を欠いている - 我々はそれを自分で書く、端末のパフォーマンスのおかげで十分すぎるほどである

このように

 
Igor Makanu:


LOGICは、まあ気持ち悪いし、LOGICのもとでは、期待値を調整する必要がないので

もし開発者が新しいデータ型 ENUM_TIMEFRAMESを組み込んだなら、プログラムの他の部分でこの型をさらに使用するように組み込んだということです。


SZS:もちろん、MT4はトレードに必要なものを知っている人たちが設計したもので、「もうひとつの端末」は宇宙人たちが書いたものだ・・・ということもできます。しかし、我々はこのフォーラムのコミュニケーション形式を超えて行くだろう、我々はサボタージュについて話をすべきではない理由です - 我々は与えられたものを使用して、我々は何を欠いている - 我々はそれを自分で書く、端末のパフォーマンスのおかげで十分すぎるほどである

このように

構文に論理性を求めることがあまりないのは良いことです))))スピードのロジックは、タイムフレームの場合に見られるが、間違っているかもしれない)

 
Igor Makanu:

Petya:そして、論理とは何ですか、ヴァシリー・イヴァノヴィッチさん?

別バージョンを聞いたことがあります。

アンカがニシンを食べる?そして、彼女は水を飲む...。

論理的な結論は、彼女は...ができます。

 
Vadim Lin:



しかし、もし何らかの理由でビッドがラインを超え、ライン価格と等しくなかったと したら......?少なくとも、前のティックが格納される変数を用意し、新しいティックがラインを横切った場合、何らかのアクションを起こす...。しかし、このケースでは、市場が大きなギャップ、または単に価格の大きなジャンプで開かれる場合、あなたは一度に多くの行で開かれ、おそらくそこにあなたが望むところではないので、"許容 "クロスを 提供することを忘れないでください。交差が許容範囲を超えている場合は、メッセージが出るだけですが...。

ありがとうございます。手動でラインを設定し、このラインを横切ると動作が行われるのですが、なぜかEAにはインジケーターのラインが 表示されず、指定した動作が行われないのです。すべてのインジケーターの行の名前に次のフレーズがあります(さらに「week-4」というナンバリングが変わります)、これをなんとか利用できないでしょうか。

//+------------------------------------------------------------------+
void OnTick()
  {
//---
        iCustom(Symbol(), 0, "ITS-Level Gun", 0, 0);  
 
        for(int i = ObjectsTotal() - 1; i >=0; i--) {

// все что не горизонтальные линии - игнорируем

        if(ObjectType(ObjectName(i)) != OBJ_HLINE) continue; 

        double PriceLine = NormalizeDouble(ObjectGet(ObjectName(i), OBJPROP_PRICE1), Digits());
        
// измените условие Bid == PriceLine
        
             if(Bid == PriceLine)
             {
  {OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);}
        } 
  
  }
  }
//+------------------------------------------------------------------+
ファイル:
 
誤記:行の名前自体は変わらないが、行の名前に@Lineという 共通フレーズがあること
 
Fib0 RU:
誤記:行の名前自体は変わらないが、行の名前に@Lineという 共通フレーズがあること
if(Bid == PriceLine)

消えないんです。

読む

Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4
  • www.mql5.com
При программировании на языке MQL4 у новичков порой возникают ситуации, когда результаты некоторых математических вычислений отличаются от ожидаемых. При этом программа компилируется и работает, но не так, как нужно. Они начинают разбираться в программе, находят новые "ошибки" в языке, реализации функций и т.п. В большинстве случаев последующий...
理由: