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

 
leonerd:


ターミナルで全てのチャートIDを調べるにはどうしたらよいでしょうか。私のコードでは current_chart_id は 1662429437, first_chart_id は 1859831371 です。ChartNext()はすでに-1を返しています。ChartFirst()とは何ですか?

まずはその意味を教えてください。先に開封?なぜ、そのIDは現在のチャート(ちなみに後で開いた)のIDより大きいのですか?

どうやらlong→intの変換が原因らしい。

 
Artyom Trishkin:

ありがとうございます。そうですね、昔はそうでした。

 
for whileループなどの作り方を知っている人。自分の技術でループを作りたいのですが、何を学べばいいのでしょうか?
 
leonerd:

どうやらlong→intの変換が原因らしい。

このようなロジックはありません。ヘルプの例を参照してください。https://www.mql5.com/ru/docs/chart_operations/chartnext

チャートIDの番号は、その形成に論理性がなく、もしかしたら、Windowsのハンドルや他の番号かもしれません、ターミナルですべてのチャートIDに目を通すには、ヘルプの例で十分です、私は、2番目のTFを構築するkodobase indicatorに投稿し、ヘルプの例を使いました - すべて時計のように動く - 私はカスタムチャートを見つける - 私はそのチャートIDを覚えて、それに刻みを生成します


Seric29 です。
whileなどのループがどのように作られているか知っている人 私の技術を使ってループを作りたいのですが、何を学べばいいのでしょうか?

うーん、数日前から質問を見て、どんな答えが聞きたいのか?- どのプログラミング言語でも、言語演算子は「そのまま」記述されることはなく、言語演算子は常に「そのまま」提供され、それ以上でも以下でもありません。

MQL4言語演算子https://docs.mql4.com/ru/basis/operators- これらは「こんな感じ」です - これはどんなプログラミング言語でも基本 です。

 
Igor Makanu:

うーん、何日か前に質問を拝見しましたが、どんな答えが聞きたいのでしょうか?- 言語演算子は、どのプログラミング言語でも「アレンジされたもの」として記述されることはなく、常に「そのままの形で提供される」ものであり、それ以上でも以下でもありません。

MQL4言語演算子https://docs.mql4.com/ru/basis/operators- これらは「こんな感じ」です - これはどんなプログラミング言語でも 基本 です。

だから、必要な情報の半分が隠されているような描写がないのはまずい。どのような構造になっているのか、興味があります。私は自分のループを作成したい、それが判明したとして、c + +とpascalに存在するmqlの少なくとも3つのループがあり、これらのループもチェックの数を減らすために作業を容易にし、不要なフラグや変数の初期化が、私は私自身を作成したいが、私はこれらの繰り返しが発生する方法を、それが任意のコードブロックに行われ、あなたがループとオープン中括弧を書くことができます理解できないこともコードが含まれています。誰かがplzを書くために何をする場合、非常に興味深い人。

 
Seric29:

また、判明したことですが、mqlには少なくとも3つのループがあり、それはc++とpascalで

私は大学でPascalとC++の両方を勉強しましたが、今でもそれは変わりません。

C++ : for, while, do...while.

パスカル:for, while, repeat

MQL: for , while , do...while

????


Seric29 です。

だから、描写されず、必要な情報の半分が隠されているのはまずい。どんな仕組みなんでしょうね。

あなたの質問の不条理さをどう説明したらいいのかさえわからないが、とにかくやってみる。

あなた: - "私はロシア語を勉強しているので、アルファベットの仕組みを知りたいのです"

私:「アルファベットには構造がなく、ただ文字があって、それが言葉を形成している」(MQLでは十数個の演算子があり、それがプログラムを形成 している)https://docs.mql4.com/ru/basis/operators

あなた : "まさか!ジンバブエ語のアルファベットには色々な意味があるんでしょう!"

私:「残念ながら、私はその言語を知らないのですが、ロシア語では文字とはただ文字であることを意味します。もちろん音素解析はできますが、それでも文字が言葉の素であることに変わりはないでしょう。

あなたは、"うーん、不思議だ、でもジンバブエ語では、「a」と言えば文字になるし、「A」と言えば家に平和が訪れるし、「aaaaah!」と言えば、"a "になる。- ということは、私が一番大きな乳首を持っているということだ!」。- ロシア語の文字の並びがわからないわけがない!?- そこには、隠された技術がある......。


というのが私の考えで、それ以外の方法はありません。

)))

 
Igor Makanu:

そのようなロジックはありません。ヘルプの例を見てください。https://www.mql5.com/ru/docs/chart_operations/chartnext

チャートIDの番号は、その形成にロジックがなく、もしかしたらWindowsのハンドルか他の番号かもしれません。 ターミナルですべてのチャートIDを検索するには、ヘルプの例で十分ですが、私はkodobaseのsec-tFを構築するためのインジケータを使用しました。

ChartFirst()は、オープンチャートの最小のIDを返しますか?

 
leonerd:

ChartFirst()は、オープンチャートから最小のIDを返すのですか?

ダメダメ- ChartFirst()の数値が意味をなさない。

PZS: ......もしかしたら間違っているかもしれませんが、ChartFirst()は、自分のチャート・シーケンスで最初に開いたチャートではなく(移動は可能)、クライアント端末で最初に開いたチャートのIDを 返すとどこかで読みました - まあ、これは正しいかどうか分かりませんけど


ChartFirst() は、ChartNext() でチャートをスクロールするための出発点となります。 それは次のようになります: 最初の ChartFirst() ID を取得 - その値を記憶して ChartNext() に送信 - 最初の ChartFirst() 値が繰り返されるまでこれを繰り返す - つまり、考えられるすべてのチャートをスクロールしたことになるのです。

ここにKBの私のインジケータのコードがあります - 私はヘルプでそれを見つけ、それをチェックし、私のチャートを見つけるためにそれを使用しています。

//+------------------------------------------------------------------+
//| поиск  идентификатора графика                                    |
//+------------------------------------------------------------------+
long CheckChart(string sym,int period,int &wh)
  {
   long result=0,id=ChartFirst();
   while(id>=0)
     {
      if(ChartSymbol(id)==sym && ChartPeriod(id)==period && ChartGetInteger(id,CHART_IS_OFFLINE))
        {
         result=id;
         ChartSetInteger(id,CHART_AUTOSCROLL,true);
         ChartSetInteger(id,CHART_SHIFT,true);
         ChartNavigate(id,CHART_END);
         ChartRedraw(id);
         wh=WindowHandle(sym,period);
         PrintFormat("Найдено окно графика: [%s,%d]",sym,period);
         break;
        }
      id=ChartNext(id);
     }
   return(result);
  }
//+------------------------------------------------------------------+
 
Igor Makanu:

ダメダメ- ChartFirst()の数値が意味をなさない

SZY: ......たぶん間違っていると思いますが、ChartFirst()は最初に開かれたチャートのIDを 返すとどこかで読みました。自分のチャートシーケンスの最初のチャートではなく(移動できます)、クライアントターミナルで最初に開かれたチャートです。一般的に、このことについて正しいかどうか分かりませんが


ChartFirst() は、ChartNext() でチャートをスクロールするための出発点となります。 それは次のようになります: 最初の ChartFirst() ID を取得 - その値を記憶して ChartNext() に送信 - 最初の ChartFirst() 値が繰り返されるまで これを繰り返す - つまり、考えられるすべてのチャートをスクロールしたことになるのです。

ここにKBの私のインジケータのコードがあります - 私はヘルプでそれを見つけ、それをチェックし、私のチャートを見つけるためにそれを使用しています。

不思議ですね。ヘルプには「最初のChartFirst()の値が繰り返されるまで」なんて書いてありませんよ。チャートリストの最後に -1 を返す

戻り値

チャートの識別子です。 チャートリストが終了した場合、この関数は-1を返します。

Документация по MQL5: Операции с графиками / ChartNext
Документация по MQL5: Операции с графиками / ChartNext
  • www.mql5.com
Операции с графиками / ChartNext - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:

不思議ですね。ヘルプには「最初のChartFirst()の値が繰り返されるまで」なんて書いてない。チャートリストが終了すると -1 を返す

すみません~罪人です!読んでませんでした、この掲示板に書き込むときは酔っ払ってました~。