エラー、バグ、質問 - ページ 611

 
x100intraday:

想像するのが怖いくらいです。実は、柔軟なバリエーションが必要なんです。1つの文字列がそのままの形で必要なのではなく、いくつかの異なる文字列をループで形成する必要があるんです...。できれば、もう少し具体的な例を挙げてほしいのですが......。

...

defineで より複雑な条件を1行にまとめることが可能です。

#define LOG(text,logs,html,type,spc,style)  if(type){if(logs){okLOG(text,spc);}if(html){okHTML(text,spc,style);}}  if(!type){if(logs){erLOG(text,spc);}if(html){erHTML(text,spc,style);}}

あなたの問題を解決する方法は、試していないのでわかりません。実験してみないと...。))

このようにいくつかの#defineを 形成し、ループの中で必要と思われるものを選択することができるかもしれません。

文字列からenumまでswitchを 使った関数をあらかじめ用意しておくことができます。しかし、非常に多くの選択肢を持っているかもしれない、どうやらこの方法もうまくいかないようだ...。

あ、もう一つ選択肢がありますねあらかじめメインファイルに接続されたmqh ファイルを生成することができます。つまり、文字列を受け取ってmqh ファイルを生成する関数があるはずです。ファイルは常に上書きされます。まさにその通りになりますね(^^)))

 

tol64 、#define オプションで冷や汗が出ます...。しかし、それは、標準的でない方法を使ったプログラミングのオリンピックのようなもので、何が何でも結果を出したいということなのです。私がswitch 方式を否定したのは、上で述べたのと同じ理由です。思想的に初歩的なタスクのために、余計に大きなコードブロックを増やしたくないからです。もっとシンプルで標準的な方法があるように思うのですが...。そうでないと、システムをハッキングして洗練された方法で目的の結果を得ようとするハッカーのような気がしてきました...。

同じタイムフレーム期間の標準リスト、タイムフレームオブジェクトの可視性 リスト、既成のリストのような要素ごとにアクセスすることは可能で、どのように可能なのでしょうか?これまでは、手動でブルートフォースで配列を埋めて、そこからインデックスで必要なものを取り出していたんだ。

ENUM_TIMEFRAMES TFsArr[3]={PERIOD_M15, PERIOD_M20, PERIOD_M30);
あとどれくらい!?もしかしたら、これらの要素を定義済みの配列/リストから一度に取り出すことができるかもしれませんね。知識が足りないというのもあるのですが......。しかし、他人のコードで定義済みのリソースにアクセスする際に、まずクッションに羽毛のコピーを詰めない限りは、まだ遭遇したことがない...。
 
x100intraday:
OBJ_PERIOD_M10| OBJ_PERIOD_H4の ような論理(?)列挙型の文字列をあらかじめ用意しておき、ObjectSetInteger()で糊付けした文字列の形で準備できた変数に代入するには、どうしたらよいでしょうか。記号的に糊付けして、StringToInteger() でくくろうとしたのですが、うまくいきません...。なぜなら、OBJ_PERIOD_...- はenum 型の要素ですが、int 型の16進数に相当する フラグを持つのでしょうか?そうすると、この列挙はビット単位の OR演算に 近いような...。
足し算でいいじゃないですか、そんな感じで。
ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,(int)OBJ_PERIOD_M10+(int)OBJ_PERIOD_H4);

...すなわち、int変数に必要なenumを追加することである。

 

非現実的なほど大きなスプレッド。

AlpariFSサーバーにてGBPUSD 648, USDCHF 110

MQ-DemoサーバーでGBPUSD 168、USDCHF 185を表示

他の記号は標準の範囲内です。

薄利多売の 特質なのか、MetaTrader 5のバグ なのか?

ポンドは落ち着いているようですが、カナダとオージーのスプレッドはそれぞれ88と61です。スイスはまだ185pipsのスプレッドで止まっています。

void OnStart()
  {
   while(!IsStopped()){Comment(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));Sleep(100);}
   Comment("");
  }
 
Swan:
足し算でいいんだよ、そういうのは。

つまり、int変数に必要なenumを追加することである。

enumはどこから持ってくるのですか?これらは、あらかじめ定義された(予約された)言葉/値として、言語に埋め込まれているようなものです。重複する列挙を自分で持つのは嫌だ。
 
x100intraday:

OBJ_PERIOD_M10| OBJ_PERIOD_H4 のように、論理列挙型の文字列を前置するにはどうすればよいですか?

そうすると、この列挙は、ビット単位の OR演算に 近いような...。

そうは見えません。

enumはどこから持ってくるのですか?それは、あらかじめ定義された(予約された)単語や値という形で、言語に埋め込まれているようなものです。

もちろん、列挙型からです。 ヘルプをご覧ください。

重複するenumの配列を自分で作りたくない。

少なくとも、列挙型、配列型、定義型が必要でしょう。

それ以上はない

 
sergeev:

そうは見えません。

もちろん、enumからです。 ヘルプをご覧ください。

どうにかしてください 列挙型、配列型、定義型。

それ以上は無理でしょう。

起動するのであれば、それはもういいんです。しかし、なぜ、あらかじめ定義された名前や定数という形で言語に埋め込まれているリスト項目のリポジトリにアクセスできないのだろうか。開発者は、これらの列挙をどこかに隠してしまったのだ......。
 
x100intraday:
enumはどこから持ってくるのですか?これらは、あらかじめ定義された(予約された)言葉/値として、言語に埋め込まれているようなものです。重複する列挙の配列を自分で作りたくない。

もんだいにならない)

ENUMs = 整数、定義済みの配列/リストはない。

 
Swan:

もんだいにならない)

ENUM_es = 整数,定義済みの配列/リストはない。

ENUM_y = は列挙型である。あらかじめ定義されたリスト。
 
x100intraday:
しかし、なぜ、あらかじめ定義された名前や定数という形で言語に埋め込まれたリスト項目のリポジトリにアクセスできないのだろうか。開発者はこの列挙をどこに置いたのだろう...。

同じENUM_TIMEFRAMESを使ってるくせに何言ってんだ?

理由: