2.現地時間(オフラインであること)が頭に浮かんでこない仕事中。while(time==TimeLocal()){//until one seconds has passed」のループの中に、FileWriteDoubleにMarketInfoが あるはずです(私には馬鹿の上塗りのように聞こえます)。そこで何がより論理的に見えるか教えていただければありがたいです。
#include <stdlib.mqh>bool once=false;
int start()
{
if (once==false)
{
double DTM; // дата и время в формате 0,20130429164459int YY=TimeYear( TimeCurrent()); // Yearint MN=TimeMonth( TimeCurrent()); // Month int DD=TimeDay( TimeCurrent()); // Dayint HH=TimeHour( TimeCurrent()); // Hour int MM=TimeMinute( TimeCurrent()); // Minuteint SS=TimeSeconds(TimeCurrent()); // Second
DTM = YY*0.0001+MN*0.000001+DD*0.00000001+HH*0.0000000001+MM*0.000000000001+SS;
Alert ("Значение переменной DTM с 06 знаками равно ", DoubleToStrMorePrecision(DTM,6));Alert ("Значение переменной DTM с 07 знаками равно ", DoubleToStrMorePrecision(DTM,7));Alert ("Значение переменной DTM с 08 знаками равно ", DoubleToStrMorePrecision(DTM,8));Alert ("Значение переменной DTM с 09 знаками равно ", DoubleToStrMorePrecision(DTM,9));Alert ("Значение переменной DTM с 10 знаками равно ", DoubleToStrMorePrecision(DTM,10));Alert ("Значение переменной DTM с 11 знаками равно ", DoubleToStrMorePrecision(DTM,11));Alert ("Значение переменной DTM с 12 знаками равно ", DoubleToStrMorePrecision(DTM,12));Alert ("Значение переменной DTM с 13 знаками равно ", DoubleToStrMorePrecision(DTM,13));Alert ("Значение переменной DTM с 14 знаками равно ", DoubleToStrMorePrecision(DTM,14));Alert ("Значение переменной DTM с 15 знаками равно ", DoubleToStrMorePrecision(DTM,15)); once=true;
}
return(0);
}
そうですね。終わったと思います。そのダニをセカンドキャンドルに詰め込んだ、リニューアルしたダニ捕り器がこちらです。
そうでした。
なった。
コードに対するコメント
1.CPU時間を節約するため、仮想ローソク足の選択でスイッチケースを作らず、代わりに選択のある部分をコメントアウトした(選択はコンパイル前に一度だけ特定のニーズで行われるため)。
2.現地時間(オフラインであること)が頭に浮かんでこない仕事中。while(time==TimeLocal()){//until one seconds has passed」のループの中に、FileWriteDoubleにMarketInfoが あるはずです(私には馬鹿の上塗りのように聞こえます)。そこで何がより論理的に見えるか教えていただければありがたいです。
3.著者の構成
init()の一番最後に宣言しています。
4.init()ダイナミックアレイの冒頭で
の代わりに使用される変数です。
5.最適化のために、理論的にはWinAPIのファイル関数を使い、44バイトのブロック(MarketInfo構造体の長さ、.hstの長さ)で一気に履歴に書き込むことが可能です。
6.Time[]セルに書き込む時間の作者のモデリングを完全に削除しました。同じ理由で、head while loopでは、TimeLocal()のチェックは行わず、TimeCurrent()のチェックのみを行っています。
7.コードの最適化のために、他に何か提案はありますか?
4から、インジケータを作ったと理解しなければ、そのような行為は明確ではありません。
ArrayInitialize() が最も適しているのでは!
そして、ほとんどの場合、インジケータ・アレイの使用は拒否すべきです。
ArrayInitialize()はおそらく動作するのか!?
ArrayInitialize(ask,EMPTY_VALUE);ってこと?してないんです。なぜきっちり切ったかというと、そういうケースを恐れてのことです。
(a, b, c)//1秒間に3回刻んだ後のaskの値(幻想的ですが、仮にそうしましょう)。
ArrayInitialize(ask, 0);//be (0, 0, 0)
FileWriteDouble(hand1e, ask[ArraySize(ask)-1], DOUBLE_VALUE);//Close[].
- Closeのセルは0になります。だから、そうならないようにサイズを再定義しているんです。ArrayInitialize(ask, EMPTY_VALUE)をチェックします。
TarasBY:
インジケータ配列の使用をやめて躍動感があって、そこにひかれたんです。コマンドの数が少なく、プロセッササイクルの数が少ない。どんな理論値でも500ミリ秒の処理をしなければならない...。...させるために。
ArrayInitialize(ask, EMPTY_VALUE);ってこと?してないんです。そのようなケースを恐れて、切り捨てるようになったのです。
(a, b, c)//1秒間に3回刻んだ後のaskの値(幻想的ですが、仮に)。
ArrayInitialize(ask, 0);//be (0, 0, 0)
FileWriteDouble(hand1e, ask[ArraySize(ask)-1], DOUBLE_VALUE);//Close[].
- Closeのセルは0になります。だから、そうならないようにサイズを再定義しているんです。ArrayInitialize(ask, EMPTY_VALUE);; チェックする。
ダイナミックであること、そこにひかれた。コマンドの数が少なく、プロセッササイクルの数が少ない。どんな理論的なボトルネックでも500ミリ秒の処理をこなさなければならない...。...させるために。
そうではなくて、何か、インジケーターの配列を縮めるのは無理なような気がするんです。さらに、このような配列に未入力のセルがある場合、そこには常に何らかの値が存在します:0またはEMPTY_VALUE、そしてこれらの計算では何が得られるのでしょうか?
そして、一般的なロジックでは、ティックコレクション全体をループで実行し、時間を個別に制御して、「新しいバー」の時間が過ぎるとすぐに、それをファイルに書き込み、その過程で作業アレイをゼロにしてクリッピングすることになるでしょう。私は知っていれば、手動で取引ウィンドウを呼び出して、このウィンドウを介して市場に参入するアドバイザーの送信とクローズ注文を変更することは可能ですか、それはアドバイザーの使用を許可しないそれらのブローカーに必要です。
そして、一般的なロジックでは、ティックコレクション全体をループで実行し、時間を個別に制御して、「新しいバー」の時間が過ぎたら、それをファイルに書き込み、その過程で作業アレイをゼロにしてクリッピングします。
おかしいな...。そのように持っているのですが...。ただ、時間はティック収集サイクル自体で制御され、ティックのコピーがティックから1秒を引いた回数だけ描画されるまで、作業配列は切り取られないようになっています。1秒経過-新しいティックが描かれ、2秒-前のティックのコピーと新しいティック、3秒-前のティックのコピー2つと新しいティック、といった具合に。前のティックのコピーの代わりに、クローズレベルでダッシュを描くことが可能です。このバリエーションはコードにコメントされています。
おかしいな...。こんな感じで持ってます...。ただ、時間はループ自体で制御しており、ティックがなかった回数から1を引いた数だけティックのコピーが描画されるまで作業配列は切り取らない。1秒経過-新しいティックが描かれ、2秒-前のティックのコピーと新しいティック、3秒-前のティックのコピー2つと新しいティック、といった具合に。前のティックのコピーの代わりに、クローズレベルでダッシュを描くことが可能です。このバリエーションはコードにコメントされています。
あなたと私は、違うサイクルの話をしているのです。これのことなんです。
小数点以下のゼロを削除する方法をどなたか教えてください。私のコードでは、なぜか小数点以下が4桁になっています。以下はそのコードです。文字列 l_dbl2str_12 = DoubleToStr(g_ibuf_140[0] - g_ibuf_144[0],3);
何が間違っているのか教えてください...。
double型の 変数に0,20130429164459(2013.04.29 16:44:59の意味)のような日付を格納したい。
EAコードの一部。
Precision 12、13、14のイベントログに誤った結果が表示される(図を参照)。