• ベストアンサー

トレンドラインの計算式について

 ある一定期間(例えば20日)には、山や谷がありますが、山と山を結んだトレンドライン(y=a1x+b1)と谷と谷を結んだトレンドライン(y=a2x+b2)をそれぞれ計算したいのですが、どうすればよいのでしょうか。  この2種類のトレンドラインは、時間がたつにつれて、交差する場合と広がっていく場合があるのですが、交差するときの時間と価格を、分析したいと思っています。  よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • makachinn
  • ベストアンサー率75% (244/324)
回答No.3

おいどんも、似たような人生かな? 銀座伊東屋でグラフを買い集め、毎日々、いろんなチャートをつけました。 やがで、BASIC、MS-DOSを覚え、いろんなプログラムを作成しました。そして、会社では、スパコン相手に格闘する羽目になり、家ではLotus123相手に格闘し、今は、Excel相手に独自の株価分析をやっています。 お互いに、がんばりましょう。 なんか、旧来の友人に会った気がして、ついつまらない事を書いてしまいました。 ここは、掲示板ではなかったですね。 すいません。_(._.)_

QAZ123
質問者

お礼

 同じような人生を送っている人にめぐりあうと、励みになります。  どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • makachinn
  • ベストアンサー率75% (244/324)
回答No.2

完璧なトレンドラインが描けると思います。 がんばって下さい。 ご参考になれば、お読み下さい。 ≪余談≫  昔、スーパーコンピューターを相手に、SASと言う統計言語で、ある青年が、  移動平均、最小二乗法、スプライン関数等々を駆使し、テクニカルチャートの法則等々、  あらゆる事をシュミレーションしました。やがて月日が流れ、その青年が得た答えは、  『Noting』でした。  多くの人々が、株価DBを相手に分析を行ないます、何を求めて?、そう、そこに何が  しかの傾向・法則が見出せないか、と思い。  おそらく、過去・現在・未来と何世紀にも亘って、青年達がチャレンジすることと思います。  チャレンジはとてもすばらしいことです。  今の、おいどんは、『がんばって下さい』と声援を送ることしかできません。 お役に立たない事をお詫び致します。有難うございました。_(._.)_ 以上でごわす。

QAZ123
質問者

お礼

 レスありがとうございます。  私は株をはじめてから20年近くなるのですが、その間に、本を読み、チャートを引き、BASICを覚え、プログラムを開発しましたが、これらにかかった時間は膨大です。株を知らなければ、別の人生があったような気がします。結果も負けています。  でも、後悔していません。毎日、パチンコして時間と金を捨てるよりは、ましだと思っています。  なにより、プログラム開発は楽しいです。    ご意見ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • makachinn
  • ベストアンサー率75% (244/324)
回答No.1

1.仮定条件   ・営業日付:土・日曜、祭日、振替休日、大納会~第発会の間、国葬日を除く   ・最初の山の価格:y1  最初の山の営業日付:y1日   ・次の山の価格 :y2  次の山の営業日付 :y2日   ・最初の谷の価格:t1  最初の山の営業日付:t1日   ・次の谷の価格 :t2  次の山の営業日付 :t2日   ・交差する価格 : X  交差する営業日付 : X日   ・1日当たりの山の変化:y変=(y2-y1)/(y2日-y1日)   ・1日当たりの谷の変化:t変=(t2-t1)/(t2日-t1日) 2.計算式  X日=(t2-t変×t2日-y2+y変×y2日)/(y変-t変)  X=y2+(X日-y2日)×y変=t2+(X日-t2日)×t変 3.解説  なぜ、ローテクを使うか?   (1)グラフから解析しようとすると、縦・横軸の交点を定義しなければ    ならず、複雑となり、また銘柄・対象期間ごとに定義し直すことになる   (2)問題は、証券用の日付をコントロールすることと思われる   (3)上記計算式では、Excelの日付・シリアル値をそのまま利用できず、    証券用日付を作成後、それにシリアル値をふり、計算します ≪余談≫  何か高尚な、一発回答型の算式を作れれば良いのですが、約3年、  株価解析の仕事に従事しただけの自分の稚拙な経験では、このような  回答と相成りました。  グラフの目視が一番だと思います、株価解析にのめり込むと、出口のない世界  に足を踏み入れ、無駄に3年間を過ごした記憶があります。f(^_^) ※空白の調整がうまくいかず、見にくい状態ですいません。 以上でごわす。

QAZ123
質問者

お礼

 レスありがとうございます。  説明不足で申し訳ないのですが、4本値(始値、高値、安値、終値)のデータから、山や谷を判断させて、高値と安値のトレンドラインの式をそれぞれ計算したいと思っています。  グラフではわかる山や谷の位置をどのようにコンピュータに計算させればよいか悩んでいます。    質問をしてからも考えていたのですが、次のような計算方法ではどうかと思っています。  (1)20日間の期間で高値のトレンドラインを計算させる場合、1日目と2日目のトレンドラインを計算する。  (2)もし、20日目までにそのトレンドラインを上回る高値があった場合はボツにし、なかった場合は、1日目から20日目までの期間で、そのトレンドラインからの距離を求め、2乗する。  (3)日にちを変えて、?日目と?日目を結ぶトレンドラインを計算し、(2)の作業を行う  (4)最終的に、トレンドラインからの距離を二乗した値の最小値を計算した日を山と山にする  終値だけのトレンドラインを引くときに、最小二乗法を用いて回帰直線を求めることができるので、質問のトレンドラインを求めるときにも応用できないかと考えています。  考え方の誤りや、その他の方法がありましたらご意見ください。  よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • トレンドラインは有用か

    こんばんは。 いろいろな本を読んでいるのですが、 疑問が解決しないので質問する事にしました。 私が理解しているトレンドラインとは - 強気 弱気といった相場の方向目安としてチャート上に引く線 - 高値-安値を結ぶ線だが明確な定義はない - 多くの人がそこに売買ポイントを設置しているであろうと想定される心理的な支持抵抗ポイント です。 私の疑問ですが、 トレンドラインは後付け論という気がするんです。 たとえばAを最安値とみてトレンドラインA1を引き、ブレークアウトポイントA2を設定、価格A3で買ったとしても、そのあと価格が最安値を更新すればトレンドラインとブレークアウトも動きます。 ということは、正しいブレークアウトポイントにたどり着くまで、何度もトレンドラインを引かなければならず、結果として錯誤と訂正を繰り返すことになると思うのです。 私の考えが間違っているのかもしれませんが... どうも不思議で。 それでも有効なんでしょうか。 実際に使っている方のご意見など伺えれば幸いです。 よろしくお願いします。

  • バラツキの計算

    f=A*(X/Y)+B*Z の式で、A,Bは一定、X,Y,Z が±10%でバラツク場合、fのバラツキをどのように計算すれば良いでしょうか?

  • Excel VBA TREND関数について

    はじめまして、以前に教えて!gooに同じ質問が掲載されており、参考にさせて頂いたのですが 演算結果に違いが出てしまい原因がわかりません。どなたかアドバイスいただけませんか? 私の環境 winXP sp3 office2000 ---------------------------------------------------------------------------------- 以前の回答(1) Sub Trend_Test()   Dim y(10) As Double '既知のy   Dim x(10) As Double '既知のx   Dim newX As Double '新しいx   '配列y()、x()に値を代入   y(1) = 100: x(1) = 1   y(2) = 200: x(2) = 2   y(3) = 300: x(3) = 3   y(4) = 400: x(4) = 4   y(5) = 500: x(5) = 5   y(6) = 600: x(6) = 6   y(7) = 700: x(7) = 7   y(8) = 800: x(8) = 8   y(9) = 900.1: x(9) = 9   '新しいx(例)   newX = 5.5   '試しに計算結果を出力   Range("A1") = Application.Trend(y, x, newX, True)   Range("A2") = Application.Trend(y, x, newX + 1, True)   Range("A3") = Application.Trend(y, x, newX + 2, True) End Sub ---------------------------------------------------------------------------------- 以前の回答(2) Sub TEST_Trend() Dim x As Variant Dim y As Variant Dim NEWx As Double x = Array(0.005479452, 0.019178082, 0.038356164, 0.082191781, 0.167123288 _ , 0.252054795, 0.328767123, 0.41369863, 0.495890411, 0.580821918, 0.663013699 _ , 0.747945205, 0.832876712, 0.915068493, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20) y = Array(0.055, 0.055, 0.057, 0.064, 0.086, 0.086, 0.087, 0.096 _ , 0.099, 0.1, 0.1, 0.1, 0.01, 0.103, 0.106, 0.15, 0.233 _ , 0.347, 0.483, 0.64, 0.817, 0.995, 1.163, 1.31, 1.545, 1.797, 2.07) NEWx = 0.05 Dim i As Integer For i = 1 To 20 Cells(i, 1) = Application.Trend(y, x, NEWx + i - 1, True) Next i End Sub ---------------------------------------------------------------------------------- 今回の検証 Dim y(6) As Double Dim x(6) As Double Dim newX As Double Dim YY As Variant Dim XX As Variant newX=7 y(1) = 92.87: x(1) = 1 y(2) = 92.55: x(2) = 2 y(3) = 91.64: x(3) = 3 y(4) = 92.3: x(4) = 4 y(5) = 93.29: x(5) = 5 y(6) = 92.59: x(6) = 6 Range("A1") = Application.trend(y, x, newX, True) Range("A1") には"119.085714285714"が出力されます XX = Array(1, 2, 3, 4, 5, 6) YY = Array(92.87, 92.55, 91.64, 92.3, 93.29, 92.59) または XX = Array(x(1), x(2), x(3), x(4), x(5), x(6)) YY = Array(y(1), y(2), y(3), y(4), y(5), y(6)) Range("B1") = Application.trend(YY, XX, newX, True) Range("B1") には"92.688"が出力されます ワークシート上でtrend関数を実行すると "92.688"を返しますので Arrayを使用した値と同じです ここで問題がありまして Do...Loop等でx(1)~x(6), y(1)~y(6)の値を取り出しています 取り出した配列(値は固定ではないのです)をどうのように Array(1, 2, 3, 4, 5, 6) または Array(x(1), x(2), x(3), x(4), x(5), x(6)) 等の形にしたら良いか分かりません たとえば Dim a as String Dim b as String a="1, 2, 3, 4, 5, 6" b = "92.87, 92.55, 91.64, 92.3, 93.29, 92.59" XX = Array(a) YY = Array(b) また、 Dim a As Variant Dim b As Variant a="1, 2, 3, 4, 5, 6" b = "92.87, 92.55, 91.64, 92.3, 93.29, 92.59" XX = Array(a) YY = Array(b) Range("D1") = Application.trend(YY, XX, newX, True) 演算結果は"#VALUE!"を返します どうのようにしたらよいのでしょうか?

  • EXCEL97VBAにおける、TREND(ワークシート関数)の配列入力は?

    EXCEL97のワークシートでファイルを作成したのですが、データ数が膨大で動かない(計算終了まで時間がかかりすぎる)ため、ワークシート関数の代わりに、VBAのSub~End Subを作成し、計算結果(式ではなく数値)のみをセルに貼り付ける作業を行っています。 ワークシート関数のTRENDを使用しているのですが、これをVBA上で使用するためにどう入力すれば良いかわかりませんので、ご教授いただきたいと思います。 myCELL=Application.TREND(既知のy, 既知のx, 新しいx, 定数) でmyCELLを計算させたいのですが、 配列の既知のyおよび既知のxがどのように入力すれば良いか判りません。 この数値をセル上において、例えばA1:A10、B1:B10という形にすることは できますが、求めていますのは X1,X2~X10 Y1,Y2~Y10の変数がVBAのプログラム上にある場合の配列の入力 (数値取込?)を教えていただきたいと思います。 TREND関数はVBAでも使用できる関数となっていますが、 私の求めるやり方は不可能である場合もその旨をお教えください。 よろしくお願い申し上げます。

  • エクセルのTREND関数について

    カテゴリをどこに指定したらいいかわからなかったので、カテ違いなら申し訳ないです。 エクセルのTREND関数を用いてある予測値を求めているのですが、 既知のy 既に分かっているyの値をセル範囲の参照などで指定(y=mx+bという関係になります) 既知のx 既に分かっているxの値をセル範囲の参照などで指定(省略可能)(y=mx+bという関係になります) 新しいx yの値を計算するための新しいxの値を指定 ということは参考サイトなどでわかるのですが、予測値を求める際に何か複雑な数式を用いてるのでしょうか? できればその数式をおしえてほしいです。よろしくお願いします。

  • 複素数の計算

    1/a+ibをx+iyとおいて、a,bをx,yで表すと、a=x/x^2+y^2、b=-y/x^2+y^2となっているのですが、どのように計算しているのかわからないので、どなたか教えてください

  • 式の計算

    式の計算についての問題 分からない問題があったので教えてください A=3x^2-2x+6. B=2x^2-3x+4 のとき次の式をxの式で表してください 1. 2A-B 2. (4A+B)-5(A-B) 次の式を計算してください 1. (4/3x^2y+2/3xy^2-6xy)÷(-2/3xy) 2. (x+y)(x^2-xy+y^2) 途中式も教えてくれたらうれしいです 宜しくお願いします .

  • 不等式の証明の計算

    √(a+x)^2+(b+y)^2≦√a^2+b^2+√x^2+y^2 が成り立つことを証明せよという問題です。 ((a+x)^2+(b+y)^2、a^2+b^2、x^2+y^2はそれぞれ全部ルートの中に入っています) (右辺)^2-(左辺)^2≧0を示せばいいと思って計算したんですが、計算した後にどのようにして0以上を示せばいいのかがわかりません。 (  )^2の形にするんでしょうか? 教えてください。よろしくお願いします。

  • 微分が計算できない。

    x = ( a^2+ b^2 + c^2 )^1/2として、x^2 = 2x(a/x)という問題を示すのですが以下のように計算してみたところ、どうしてもあいませんでした。 ( a^2+ b^2 + c^2 ) = Yとおきました。 x^2 = Y^(1/2+2) = Y^(5/2) dY^(5/2)/da = 5/2Y^(3/2) * da/dx = 5/2Y^(3/2) * 2a = ・・・ よろしくお願いします。

  • excelのtrend関数とsum関数について

    いくつかエクセルについて質問がありますので、知っている方がおりましたら、よろしくお願いいたします。 1.a1~d5まで数字が入っており、それぞれの行の平均を合計したいと思っています。途中の平均の式を出さずに合計を出す式って作ることができるのでしょうか? 2.y軸を日付としてtrend関数を使いたいのですが、x1の列に対応しているyとx2に対応しているyがそれぞれバラバラです。それでもtrend関数を使うことってできるのでしょうか? 3.a1~b13まで小さい順に数字が入っていて、それをc行にまとめて小さい順に並べたいのですが、min関数とif関数を組み合わせている関数ってあるのでしょうか? 関数辞典を買ってみても答えを見つけることができず・・・1,2に限っては別の所に計算して出しましたが、もし簡単にできる方法を知っている方がおりましたら、よろしくお願いいたします。