最初: この質問は重複していません。私はすでにここでこれを尋ねましたが、重複として閉じられました。これは、stackoverflow の他のスレッドと似ていますが、実際にははるかに複雑です。重複していると考える前に、投稿を読んでください。
可変日付で可変移動平均クロスオーバーを計算しようとしています。
つまり、ユーザーに 3 つの値と 1 つのオプションを求めるプロンプトが表示されます。入力は Web フロント エンドを介して行われるため、入力に基づいてクエリを作成/編集したり、必要に応じて複数のクエリを作成したりできます。
X = 1st moving average term (N day moving average. Any number 1-N)
Y = 2nd moving average term. (N day moving average. Any number 1-N)
Z = Amount of days back from present to search for the occurance of:
option = Over/Under: (> or <. X passing over Y, or X passing Under Y)
X day moving average passing over OR under Y day moving average
within the past Z days.
私のデータベースは構造化されています:
tbl_daily_data
id
stock_id
date
adj_close
と:
tbl_stocks
stock_id
symbol
私はbtreeインデックスを持っています:
daily_data(stock_id, date, adj_close)
stock_id
私はこのクエリに行き詰まっており、それを書くのに多くの問題を抱えています。変数が固定されている場合、それは些細なことのように見えますが、X、Y、Z はすべて互いに 100% 独立しているため (たとえば、過去 100 日間の 5 日間の移動平均、または過去 5 日間の 100 日間の移動平均を見ることができます)。 ) コーディングに苦労しています。
助けてください!:(
編集:もう少しコンテキストが役立つかもしれないと言われましたか?
ユーザーがトレンド分析を実行できるオープンな株式分析システムを作成しています。私は 3500 株の株式と 1970 年までさかのぼる価格履歴を含むデータベースを持っています。
このクエリは、特定の基準に一致する株式を見つけるために毎日実行されます。たとえば、次のようになります。
10日移動平均線が5日以内に20日移動平均線を超える
20 日クロッシング UNDER 10 日移動平均線 5 日以内
100 日以内に 22 日移動平均線を下回る 55 日クロス
しかし、各ユーザーは異なる分析に関心がある可能性があるため、移動平均を各行に保存するだけではなく、計算する必要があります。