Mt4 サポート終了。 - ページ 26 1...192021222324252627282930313233...47 新しいコメント Реter Konow 2017.09.10 23:42 #251 私の解答を気に入った人は、直接私に手紙を書いて ください。磨きをかけてプレゼントします。みんなに幸あれ。 Artyom Trishkin 2017.09.10 23:45 #252 Реter Konow:シンボルサイクル、気配値到着時の新しいバー オープンのチェックなど、私のソリューションに簡単に追加することができます。それとOOPはどう関係があるのですか?あなたは間違った例を選んでいます。他のことを自由に考えてください。そして、それを実行するのです。キャラクターは変わるものだと考えると--やはり、文字を読むときはそうですね。 Реter Konow 2017.09.10 23:55 #253 Artyom Trishkin:やるんだ。文字が変わることができることを考えると - あなたが文字を読んだときが真実であるため。では、もし私がそうしたら?じゃあ、何を言うんだ?秘密にしておきますが、私にとってこのような作業は全く子供の遊びです。本当に出来ないと思っているのか?それは甘えだ...。 Artyom Trishkin 2017.09.11 00:00 #254 Реter Konow: では、もし私がそうしたら?じゃあ、何を言うんだ?秘密にしておきますが、私にとってこのような作業は全く子供の遊びです。本当に出来ないと思っているのか?それは甘えだ...。まあ、もうやってください。 Sofiia Butenko 2017.09.11 00:02 #255 Vitaly Muzichenko:Artyomは質問に答えてくれませんでしたが、問題はこうです:手続き型で書いて、正しく動作するようにすること文句なしです。ヘッジは、文字列操作の比較を保存するため、まあ、顧客がマニアックで、すべてのシンボルで同時に取引する場合です。しかし、操作やメモリを保存する場所はどこにもないようで、すべてが最小限になっていますvoid OnTimer(){ Alert(Fn_new_bar("EURUSD", PERIOD_D1)); }//+------------------------------------------------------------------+uint Sp_Adler32(string line){ ulong s1 = 1; ulong s2 = 0; uint buflength=StringLen(line); uchar char_array[]; ArrayResize(char_array, buflength,0); StringToCharArray(line, char_array, 0, -1, CP_ACP); for (uint n=0; n<buflength; n++){ s1 = (s1 + char_array[n]) % 65521; s2 = (s2 + s1) % 65521;} return ((s2 << 16) + s1);}//+------------------------------------------------------------------+bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf){ static datetime st_time[]; static uint st_id[]; //---- set datetime new_time = iTime(symb, tf, 0); if(new_time==0) return(false); uint new_id = Sp_Adler32(StringConcatenate(symb,EnumToString(tf))); datetime old_time = 0; uint old_id = 0; //---- find int size = ArraySize(st_time); for(int i=0; i<size; i++){ if(st_id[i]!=new_id) continue; old_id = st_id [i]; old_time = st_time[i]; break;} //----add new element if(old_time==0){ ArrayResize(st_time, size+1); st_time[size]=new_time; ArrayResize(st_id, size+1); st_id [size]=new_id; } //---- return(old_time>0 && old_time<new_time);} Mt4 End of support. コーディングのヘルプ Any questions from newcomers Sofiia Butenko 2017.09.11 00:06 #256 Реter Konow:少し遅れて申し訳ございませんでした。 以下は、その関数の最初のバージョンです。さらに磨きをかけて発展させることができます。誤りにお気づきの方は、コメントをお願いします。ポイントはOOPにあるのではなく、あなたのコードがリニアであることにあるのです、おそらくあなたはそれを学ぶことはないでしょうが...。 Artyom Trishkin 2017.09.11 00:09 #257 Galina Bobro:問題ありません。文字列操作の比較を保存するためのヘッジ、まあ、顧客がマニアックですべての文字を同時に取引する場合。しかし、操作やメモリを節約する場所はどこにもないようで、すべてが最小限の状態です。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム Mt4エンド対応。 アルチョム・トリシキン さん 2017.09.10 23:21 彼の手続き型コードの最終結果には、このようなループで動くという目標がありました。 ENUM_TIMEFRAMES array_timeframes[]= { PERIOD_M1,PERIOD_M2,PERIOD_M3,PERIOD_M4,PERIOD_M5,PERIOD_M6,PERIOD_M10,PERIOD_M12,PERIOD_M15,PERIOD_M30, PERIOD_H1,PERIOD_H2,PERIOD_H3,PERIOD_H4,PERIOD_H6,PERIOD_H8,PERIOD_H12,PERIOD_D1,PERIOD_W1,PERIOD_MN1 }; int total=SymbolsTotal(true), total_tf=ArraySize(array_timeframes); for(int i=0; i<total; i++){ string symbol_name=SymbolName(i,true); for(int j=0; j<total_tf; j++){ if(IsNewBar(symbol_name,array_timeframes[j])){ Print("Новый бар на ",symbol_name," ",EnumToString(array_timeframes[j])); } } } Sofiia Butenko 2017.09.11 00:14 #258 Artyom Trishkin: 習慣で間違った名前を付けてしまいましたが、bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf)が正しい関数 です。 Реter Konow 2017.09.11 00:15 #259 Artyom Trishkin:じゃあ、今やってよ。OKです。あなたの解決策はダニにしか効きません。私のはタイマー式です。バーアピアランスでタイミングをとるという私のやり方は、欠点があると思いますか?なるほど。こんな感じにしておきましょう。新しいバーフラグを設定する前に、見積書の到着を確認する機能を追加する予定です。関数にもう一つ、シンボルというパラメータを追加してみます。ユーザーは、新しいバーイベントを受信するシンボルを選択し、関数に送信します。この関数は、このシンボルが最後に引用された時刻を チェックします。そして、バーフォーマル登場時刻と見積もり時刻を比較し、イベントフラグを設定します。まだ勉強を始めたばかりですが、難しいことはないと思っています。 Реter Konow 2017.09.11 00:18 #260 Galina Bobro: OOPの問題ではなく、あなたのコードがリニアであるかどうか、あなたは知らないかもしれないけれど...。 リニア、ノンリニア...またプログラミングでオペラの話をするんですか? 1...192021222324252627282930313233...47 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私の解答を気に入った人は、直接私に手紙を書いて ください。磨きをかけてプレゼントします。
みんなに幸あれ。
シンボルサイクル、気配値到着時の新しいバー オープンのチェックなど、私のソリューションに簡単に追加することができます。それとOOPはどう関係があるのですか?
あなたは間違った例を選んでいます。他のことを自由に考えてください。
そして、それを実行するのです。キャラクターは変わるものだと考えると--やはり、文字を読むときはそうですね。
やるんだ。文字が変わることができることを考えると - あなたが文字を読んだときが真実であるため。
では、もし私がそうしたら?じゃあ、何を言うんだ?秘密にしておきますが、私にとってこのような作業は全く子供の遊びです。本当に出来ないと思っているのか?それは甘えだ...。
では、もし私がそうしたら?じゃあ、何を言うんだ?秘密にしておきますが、私にとってこのような作業は全く子供の遊びです。本当に出来ないと思っているのか?それは甘えだ...。
まあ、もうやってください。
Artyomは質問に答えてくれませんでしたが、問題はこうです:手続き型で書いて、正しく動作するようにすること
文句なしです。ヘッジは、文字列操作の比較を保存するため、まあ、顧客がマニアックで、すべてのシンボルで同時に取引する場合です。
しかし、操作やメモリを保存する場所はどこにもないようで、すべてが最小限になっています
void OnTimer(){
Alert(Fn_new_bar("EURUSD", PERIOD_D1)); }
//+------------------------------------------------------------------+
uint Sp_Adler32(string line){
ulong s1 = 1;
ulong s2 = 0;
uint buflength=StringLen(line);
uchar char_array[];
ArrayResize(char_array, buflength,0);
StringToCharArray(line, char_array, 0, -1, CP_ACP);
for (uint n=0; n<buflength; n++){
s1 = (s1 + char_array[n]) % 65521;
s2 = (s2 + s1) % 65521;}
return ((s2 << 16) + s1);}
//+------------------------------------------------------------------+
bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf){
static datetime st_time[];
static uint st_id[];
//---- set
datetime new_time = iTime(symb, tf, 0); if(new_time==0) return(false);
uint new_id = Sp_Adler32(StringConcatenate(symb,EnumToString(tf)));
datetime old_time = 0;
uint old_id = 0;
//---- find
int size = ArraySize(st_time);
for(int i=0; i<size; i++){
if(st_id[i]!=new_id) continue;
old_id = st_id [i];
old_time = st_time[i];
break;}
//----add new element
if(old_time==0){
ArrayResize(st_time, size+1); st_time[size]=new_time;
ArrayResize(st_id, size+1); st_id [size]=new_id; }
//----
return(old_time>0 && old_time<new_time);}
少し遅れて申し訳ございませんでした。
以下は、その関数の最初のバージョンです。さらに磨きをかけて発展させることができます。誤りにお気づきの方は、コメントをお願いします。
ポイントはOOPにあるのではなく、あなたのコードがリニアであることにあるのです、おそらくあなたはそれを学ぶことはないでしょうが...。
問題ありません。文字列操作の比較を保存するためのヘッジ、まあ、顧客がマニアックですべての文字を同時に取引する場合。
しかし、操作やメモリを節約する場所はどこにもないようで、すべてが最小限の状態です。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
Mt4エンド対応。
アルチョム・トリシキン さん 2017.09.10 23:21
彼の手続き型コードの最終結果には、このようなループで動くという目標がありました。
習慣で間違った名前を付けてしまいましたが、bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf)が正しい関数 です。
じゃあ、今やってよ。
OKです。あなたの解決策はダニにしか効きません。私のはタイマー式です。バーアピアランスでタイミングをとるという私のやり方は、欠点があると思いますか?なるほど。こんな感じにしておきましょう。新しいバーフラグを設定する前に、見積書の到着を確認する機能を追加する予定です。関数にもう一つ、シンボルというパラメータを追加してみます。ユーザーは、新しいバーイベントを受信するシンボルを選択し、関数に送信します。この関数は、このシンボルが最後に引用された時刻を チェックします。そして、バーフォーマル登場時刻と見積もり時刻を比較し、イベントフラグを設定します。
まだ勉強を始めたばかりですが、難しいことはないと思っています。
OOPの問題ではなく、あなたのコードがリニアであるかどうか、あなたは知らないかもしれないけれど...。