C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.78837 の関連記事表示

<< 0 >>
■78837  同じ分数のグループに纏めるには
□投稿者/ どど -(2016/02/20(Sat) 21:49:13)

    分類:[C#] 

    前回時刻、 始値、安値、高値、終値のフィールドは適当に初期化しておく

    受信した現在時刻と現在値をString.Split、DateTime、DecimalなどでParseする
    前回時刻と現在時刻の年月日時分を比べる
    一致しているなら、安値、高値を必要に応じて更新し、前回時刻と終値に現在の値を設定する
    一致していないなら前回時刻、始値、安値、高値、終値を出力し、前回時刻、始値、安値、高値、終値に現在の値を設定する

    と言う条件でコードを書きたいのですがどの様に書けばいいのかわかりません
    よろしくお願いします
親記事 /過去ログ134より / 関連記事表示
削除チェック/

■78838  Re[1]: 同じ分数のグループに纏めるには
□投稿者/ Azulean -(2016/02/20(Sat) 22:58:50)
    No78837 (どど さん) に返信
    > と言う条件でコードを書きたいのですがどの様に書けばいいのかわかりません
    
    これってコードを作り出して欲しいという依頼(丸投げ)なのかな…。
    とりあえず、わからないなりに書いてみませんか?
    そして、どこで躓くか、そのピンポイントを質問してみましょう。
    
    
    そのままでは使えないけれど、考え方としてはこういうことに近いのでは。
    
    DateTime lastTime = DateTime.Now;
    int max = 0, min = 100, last = 0;
    while (Tuple<DateTime, int> current = Get())
    {
      if (lastTime == current.Item1)
      {
        last = current.Item2;
        max = Math.Max(max, current.Item2);
        min = Math.Min(min, current.Item2);
      }
      else
      {
         break; // 時刻違うらしい
      }
    }
記事No.78837 のレス /過去ログ134より / 関連記事表示
削除チェック/

■78843  Re[1]: 同じ分数のグループに纏めるには
□投稿者/ WebSurfer -(2016/02/21(Sun) 01:03:11)
    No78837 (どど さん) に返信

    > 前回時刻、 始値、安値、高値、終値のフィールドは適当に初期化しておく

    その「適当」というのはどういう意味ですか?
記事No.78837 のレス /過去ログ134より / 関連記事表示
削除チェック/

■78850  Re[2]: 同じ分数のグループに纏めるには
□投稿者/ どど -(2016/02/21(Sun) 14:43:02)
    ■投稿者/ Azulean (599回)-(2016/02/20(Sat) 22:58:50)

    自分なりに書いてみたのですが上手く処理できません。

        //前回時刻、 始値、安値、高値、終値のフィールドは適当に初期化しておく
    DateTime Time = args.Tick.DateTime;
    double Price = args.Tick.Price;
    double Volume = args.Tick.Volume;

    double Open = 0;
    double High = 0;
    double Low = 0;
    double Close = 0;
    double volume_v = 0;


    //前回時刻と現在時刻の年月日時分を比べる
    DateTime dt = DateTime.Now;
    int minute = dt.Minute;
    String a = minute.ToString();

    DateTime dt1 = Time;
    int minute1 = dt1.Minute;
    String b = minute1.ToString();

    if (a == b)//一致しているなら、安値、高値を必要に応じて更新し、前回時刻と終値に現在の値を設定する
    {
    Open = Price;
    if (Price > High)High = Price;
    if (Price < Low)Low = Price;
    volume_v = volume_v + Volume;
    }

    else
    {


    }

    >>一致していないなら前回時刻、始値、安値、高値、終値を出力し、前回時刻、始値、安値、高値、終値に現在の値を設定する
    この部分はまだ手付かずです
記事No.78837 のレス /過去ログ134より / 関連記事表示
削除チェック/

■78851  Re[3]: 同じ分数のグループに纏めるには
□投稿者/ WebSurfer -(2016/02/21(Sun) 14:59:50)
    No78850 (どど さん) に返信

    > DateTime Time = args.Tick.DateTime;
    > double Price = args.Tick.Price;
    > double Volume = args.Tick.Volume;

    args とは何でしょうか? 定義不明のようですが?
記事No.78837 のレス /過去ログ134より / 関連記事表示
削除チェック/

■78855  Re[3]: 同じ分数のグループに纏めるには
□投稿者/ Azulean -(2016/02/21(Sun) 16:34:18)
    No78850 (どど さん) に返信
    > 自分なりに書いてみたのですが上手く処理できません。

    デバッグしましたか?
    ステップ実行やブレークポイントを使って、どのように動いているか確かめてください。
    思っていない分岐に入ったのであれば、変数にカーソルを合わせ、変数の値がどうなっているかを確認しましょう。

    (ぶっちゃけると、「うまくいきません」と言われても第三者にはわかりません。何を期待してどうなったかをきちんと説明できるぐらいには、現象を把握する努力をしましょう)
記事No.78837 のレス /過去ログ134より / 関連記事表示
削除チェック/

■78897  Re[3]: 同じ分数のグループに纏めるには
□投稿者/ WebSurfer -(2016/02/23(Tue) 12:57:03)
    No78850 (どど さん) に返信

    >     //前回時刻、 始値、安値、高値、終値のフィールドは適当に初期化しておく
    > DateTime Time = args.Tick.DateTime;
    > double Price = args.Tick.Price;
    > double Volume = args.Tick.Volume;

    先にも質問しましたが args とは何でしょう? たぶんそこのところが「適当」ではないか
    と想像していますが、「適当」では何がしたいのかわからないです。

    掲示板の反対側にいる第三者には掲示板に書いてあること以外は知りえないということ強く
    意識して、質問者さんのやりたいことをきちんと説明していただけるとその先に進めると思
    うのですが・・・
記事No.78837 のレス /過去ログ134より / 関連記事表示
削除チェック/

■78888  Re[1]: 同じ分数のグループに纏めるには
□投稿者/ shu -(2016/02/23(Tue) 11:03:09)
    No78837 (どど さん) に返信

    > 受信した現在時刻と現在値をString.Split、DateTime、DecimalなどでParseする
    どこから?一定間隔で外部からのデータ供給がある場合と対象データを一括で
    取り込むことが出来る場合とで処理が異なります。


    > 前回時刻と現在時刻の年月日時分を比べる
    時刻はどんなデータになっている?


    > 一致していないなら前回時刻、始値、安値、高値、終値を出力し、
    どこへどのように出力する?


    > 前回時刻、始値、安値、高値、終値に現在の値を設定する
    初期の前回時刻の設定をデータ上発生しない値にしておくか初期データフラグを用意することで
    最初のデータと分の変わり目の処理を1つに纏めることが出来ます。




記事No.78837 のレス /過去ログ134より / 関連記事表示
削除チェック/

■78938  Re[1]: 同じ分数のグループに纏めるには
□投稿者/ Jitta -(2016/02/24(Wed) 21:27:54)
    No78837 (どど さん) に返信
    > 前回時刻、 始値、安値、高値、終値のフィールドは適当に初期化しておく
    > 受信した現在時刻と現在値をString.Split、DateTime、DecimalなどでParseする
    > 前回時刻と現在時刻の年月日時分を比べる
    > 一致しているなら、安値、高値を必要に応じて更新し、前回時刻と終値に現在の値を設定する
    > 一致していないなら前回時刻、始値、安値、高値、終値を出力し、前回時刻、始値、安値、高値、終値に現在の値を設定する

    これは、「条件」じゃなく、「手順」の一部だなぁ。

     プログラムというのは、結果を得るためにしなければいけないことを積み上げることです。
    「音楽会」という会を完成させるために、誰が、何を、どんな順に、演奏するか、決めます。
    そして、「音楽会のプログラム」ができあがります。
    同じように、「初期化する」「受信する」「受信内容を読み解く」「前回値と比較する」「更新する」という手順を経て、目的の結果が得られるわけです。
    そのためにしなければならないのは、「コードを書く」ことではありません。
    「手順を、コードになるまで細かく分け、具体化する」ことです。

     No78850 に書かれている「コードの断片」は、「条件」とおっしゃった「手順の一部」だけをコード化してあります。
    ですから、望む結果にはほど遠い内容です。
    前回時刻などの「初期値」、つまりプログラムを最初に実行したときに入力しておくべき値はなんでしょうか。
    「前回時刻」であれば、たとえば、昨日のデータを引っ張り出してきて、その最終時刻かもしれません。
    もしかしたら、今日、実行して途中まで更新してあるデータがあるかもしれません。
    そういった「曖昧な点」を、曖昧でなくなるまで具体化していくことが、「プログラムを作る」ということです。
    「プログラムを作る」ことと、「コードを書く」ことは一致しません。
    まずは、「プログラムを作って」ください。
記事No.78837 のレス /過去ログ134より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -