設定でシンボルを選択する - ページ 3

削除済み  
Alexey Viktorov:

文字の配列を埋めて、その配列を操作する。

上記のコードを使った無料のEAがあります***。


ps; drubashkaさん、リンクは外すべきでしたね。私がマーケットプレイスで販売している商品のうち、有料なのは2つだけです。2017年のものは4回レンタルしており、2014年の10銭のものは一度も買っていません。だから、ここには期待するような広告はない。

なんでこのスレッドに参加したんだろう......今、苦労しています。 まだ、何とかならないかなぁ。

どうだろう、これならいけるかもしれない。

struct translate{
   string EURUSD;
   string GBPUSD;
   string USDCHF;
   string USDJPY;
   string USDCAD;
   string AUDUSD;
   string AUDNZD;
   string AUDCAD;
   string AUDCHF;
   string AUDJPY;
   string CHFJPY;
   string EURGBP;
   string EURAUD;
   string EURCHF;
   string EURJPY;
   string EURNZD;
   string EURCAD;
   string GBPCHF;
   string GBPJPY;
   string CADCHF;
};
translate langs;
 
Aleksandr Klapatyuk:

回答ありがとうございます。 なぜこのスレッドに来たのか分かりませんが......今、悩んでいます。 まだ方法を探しているところです。

どうだろう、これならいけるかもしれない。

時間の無駄です。プログラム的に構造体や列挙型を埋めることはできません。また、配列は多通貨のEAにのみ使用できます。多通貨EAは、どのシンボルにも乗せることができるものではなく、1つのチャートにいながら複数のシンボルを取引することができるEAです。このリンク先には、そのような多通貨EAの例があります。通貨の選択は、3つの選択肢から1つを選択します。

  1. Expert Advisorが配置されているペアのみ取引されます。
  2. 取引される通貨のカンマ区切りリスト
  3. Expert Advisorを起動した時点でオープンしているすべてのペアが取引されます。
しかし、オプションはenumで選択される
削除済み  
Alexey Viktorov:

こんなことしちゃダメだ。構造体も列挙型も、プログラムによる入力はできない。また、配列は多通貨EAにのみ使用可能です。多通貨EAとは、任意のシンボルに設定できるものではなく、1つのチャートにいて、複数のシンボルを取引できるものです。このリンク先には、そのような多通貨EAの例があります。通貨の選択は、3つのオプションから選択することができます。

  1. Expert Advisorが取引されているペアのみ
  2. 取引される通貨のカンマ区切りリスト
  3. Expert Advisor を起動した時点でオープンしているすべての通貨ペアが取引されます。
しかし、オプションはenumで選択される

ありがとうございます!私は余裕のないことを始めてしまいました。 もっと簡単なことを学びたいのです。

以前にもやったことがあるのですが、すべてうまくいきました。

string         Symb[3]={"EURUSD","GBPUSD","EURJPY"};
double         prPos[3];
------------------------------------------------------------
   for(int i=0;i<3; i++)
      if(PositionSelect(Symb[i]))
        {
         prPos[i]=(PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE))/n;
        }
      else
        {
         prPos[i]=0;
        }
 
Aleksandr Klapatyuk:

ありがとうございます!できないことをやっているんです。 もっと簡単なことを覚えたいんです。

そうやって、全部うまくいったんです。

これが、私が説明した2つ目の選択肢です。取引通貨は、カンマ区切りで用意された一覧表から選んでください。でも、私のバージョンはちょっと違うんです。リストは次のようになります。

"EURUSD,GBPUSD,EURJPY"

を指定すると、このリストから配列が満たさ れ、配列が操作されます。さらに、通貨のサフィックスを定義し、配列が満たさ れたときに自動的に追加されます。これは、異なるアカウントでリストを再入力することを避けるためです。

 
Alexey Viktorov:

同じことを話しているわけではありません。

シムヴ

syTotal =SymbolsTotal(true) は常に1になるようです。なぜなら、true の場合、SymbolTotal() は Market Watch のシンボル数ではなく、Market Watch の選択されたシンボル数を表示し、これは次のアイテムを選択する前にリストをどのようにステップするのかという問題を提起します。

 
andre:


syTotal = SymbolsTotal(true)は常に1であるように見えますが、これはtrueの場合SymbolTotal()がMarket Watchのシンボル数ではなく、その中で選択されたシンボル数を与えるため、次のアイテムを選択する前にリストをどのようにステップするのかという疑問が出てくるからです。

テスターでは、はい、常に1つのシンボルがあります。そのため、EAの説明には、テスターでは1つのシンボルまたはシンボルのリストでしかテストできない旨の警告が記載されています。

 
残念ながら、これを実現するためには、入力パネルを自分で描いたり、ドロップダウンリストを実装したりと、基本的に複雑なことは何もないのですが、雲泥の差です。もし、宗教や顧客が許すのであれば、windowsformを通してシャープに実装する方が簡単です。標準パネルで行う技術的な可能性については、原理的には問題なく、むしろ作り手の意向の問題だと思います。値を選択できるようにすることは可能ですが、コンパイラに限っては、__declsymb input string value=__default(or __pos1) のように、キーワードを追加する必要があり、一般にはコンパイラや端末の開発者が開発する必要があります。
 
Vladimir Simakov:
残念ながら、これを実現するためには、入力パネルを自分で描いたり、ドロップダウンリストを実装したりと、基本的に複雑なことは何もないのですが、雲泥の差です。もし、宗教や顧客が許すのであれば、windowsformを通してシャープに実装する方が簡単です。標準パネルで行う技術的な可能性については、原理的には問題なく、むしろ作り手の意向の問題だと思います。値を選択できるようにすることは可能ですが、コンパイラに限っては、__declsymb input string value=__default(or __pos1) のように、キーワードを追加する必要があり、一般にはコンパイラや端末の開発者が開発する必要があります。

まあ、そうなんですけどね。dllを使えば、ターミナルで戦車ごっこができる。しかし、DLLの機能を考慮しないまま問題提起され

 
Alexey Viktorov:

まあ、そうなんですけどね。dllを使えば、端末で戦車も遊べます。しかし、DLの機能を考慮しないまま問題提起され

そして、クリエイターに祈るか、自分で入力パネルを書くか。ロボットの起動時に(インジケータを使うとより複雑になります)OnTimer()で自作の入力パネルが起動し、データを入力し、ロボットが動き出しました。こんな感じです。
 
Vladimir Simakov:
そして、クリエイターに祈るか、自分で入力パネルを書くか。ロボットが起動すると(インジケータがあるともっと複雑)OnTimer()で自作の入力パネルが立ち上がり、データを入力するとロボットが動き出す。こんな感じです。

まず、"誰が必要としているのか?"を考える必要があります。

試してみたいのですが、うまくいきませんでした。 Expert Advisorに、MQLを使用してはできないことを伝えました。しかし、誰も他の手段でどうやるかを聞かなかった。こんなくだらないことに意味があるのか?端末のチャートで漫画を描ける人はここに十分いますよ。