昔、MQL3で線形回帰指標を書き、4で書き直したのですが、うまくいきません。スペシャリストは、私が書いたり、間違いを訂正するのを助けてください。
また、似たようなものとして、双曲線回帰があります(こちらもエラーが見つかりません)。
//+------------------------------------------------------------------+ //| гиперболическая регрессия.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" //#property indicator_chart_window #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern int nn=21; //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- double barr, as, bs,cs,ds,e, f,k,LR,ExtMapBuffer1[]; int n,n1; // Индикатор Гиперболической Регресии for (barr=0;barr<=100;barr++){ for (n=1;n<=nn;n++){ n1=barr+n-1; as=as+1/n; bs=bs+1/(n*n); cs=cs+Close[n1]; ds=ds+Close[n1]/n; } e=nn*bs-as*as; f=cs*bs-ds*as; k=nn*ds-as*cs; f=f/e; k=k/e; LR = f+k/nn; as=0; bs=0; cs=0; ds=0; ExtMapBuffer1[n]=LR; } //---- return(0); } //+------------------------------------------------------------------+
https://www.mql5.com/ru/code を検索してください。
https://forum.mql4.com/ru/10446/page13
ありがとうございます、面白いですね、でもどこでインジケータを間違えたのでしょうか?
kvn:
ありがとうございます、面白いですね、でもどこでインジケータを間違えたのでしょうか?
そうなんです、メチャクチャな んです。
ありがとうございます、面白いですね、でもどこでインジケータを間違えたのでしょうか?
Rosh:
そうなんです、失敗 しちゃったんです。
kvn
ありがとうございます、面白いですね、でもどこでインジケータを間違えたのでしょうか?
ありがとうございます、面白いですね、でもどこでインジケータを間違えたのでしょうか?
そうなんです、失敗 しちゃったんです。
字は読めるんだろ? だったら場所を教えてくれ ありがとうございます
kvn:
じゃあどこなんだ?
この話題については、ここでもいろいろな情報が飛び交っています。一般的な方法として、与えられたパラメータの数だけ近似曲線からの標準偏差の和の方程式を挙げることができます。そして、各パラメータの偏導関数を求め、ゼロに等化する。得られた連立一次方程式から、必要なパラメータをすべて求めます。アルゴリズムはご覧の通りシンプルで、やることに全く工夫がありません。
ロッシュ
そうなんです、メチャクチャな んです。
kvn
ありがとうございます、面白いですね、でもどこでインジケータを間違えたのでしょうか?
ありがとうございます、面白いですね、でもどこでインジケータを間違えたのでしょうか?
そうなんです、メチャクチャな んです。
じゃあどこなんだ?
あなたの言うことは、正確には線形回帰では ありません。LRのテクニックは私のインジケーターに書いてあります。
//インジケータはLR = at+b の式で構築されます。
//LR - 終値の予測「平均」価格。
//t - 時点,Pt - 直近n期間の終値.
//a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) -回帰直線の角度正接(t),
//b = 1/n*(SUMM(Pt)-a*SUMM(t))、-水平シフト}。
しかし、実行すると、まず間違ったデータ(n=1-100の時、)が出て、次にn=22と正しい値が出てきます。どこかに小さなエラーがあり、それを見つけることができない。
ループ演算子にエラーがあるのでは?
//インジケータはLR = at+b の式で構築されます。
//LR - 終値の予測「平均」価格。
//t - 時点,Pt - 直近n期間の終値.
//a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) -回帰直線の角度正接(t),
//b = 1/n*(SUMM(Pt)-a*SUMM(t))、-水平シフト}。
しかし、実行すると、まず間違ったデータ(n=1-100の時、)が出て、次にn=22と正しい値が出てきます。どこかに小さなエラーがあり、それを見つけることができない。
ループ演算子にエラーがあるのでは?
私はwikipediaが好きではありませんが、線形回帰のテーマで リンクを提供しています。また、某ブログで見つけたのですが、http://cmacfm.mazoo.net/archives/00 0936.html。
LRについては論外です。ということは、インジケーターコードのどこに誤りがあるのでしょうか?

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索