SOM:調理法 - ページ 3

 

alexeymosc!

> 1989年から2011年までの日足でのGBPUSDペアの分析を行いました。

[...]

> OOS期間(2010年初頭から現在に至るまで)。


これは誤植なのか、それともOSS期間がうっかり分析期間より伸びているのか?

 
はは、いい質問ですね。
 
単純なことです。1989年から2009年末までのデータを用いてネットワークを構築した。そして、その結果の2010年初頭の戦略を確認すると...。なんでそんなにムキになっているんだ、意味がわからない。自分で解析を繰り返し、自分の目で確かめてください。
 
要は何か言ってくれないと、自分からデータを要求しておいて何も言わない。
 
alexeymosc:
もっと要領よく言えよ、データ出せと言っといて何も言わないんだから。


アレクセイさん、こんにちは。

ここにいる多くの人が、あなたの結果に関心を持っていると思います。私なりの視点」で説明しますので、あまり足踏み、ホルンしないで くださいね。

Cycle = Close[]-ma(Close[], 25)という変換を行うと、定常信号(平均 = Const, シグマ = Const)が得られます。そして、SOMと長さ40の同じパターンを使って、このCycleのトレーディングシステムを構築してみることにする。堅牢な良いシステムを手に入れることができる...。そして、通常の価格系列には確率的なトレンドがあり、それはインフレ、デフレ、その他の外部ファンダメンタルズによって駆動される。そして、このような確率的な傾向によって、多くの人が安定したシステムを手に入れることができないのです。1つの商品の価格系列だけを使ってどのように対処するのか、私にはよくわかりません。そして、普通の価格帯のシリーズでの結果は、かなり嬉しい驚きです!(笑)。

 

ありがとうございました。変換について......わかりました。私の場合、「ジャストプライス」で結果を絞り出したかったのです。正直なところ、純粋に価格だけで取引して成功している同志に触発されました(このフォーラムにもそのようなメッセージがありました)。

私もこの結果には少し驚きましたが、今のところ、このストラテジーの弱点であるドローダウン(SOMトレーニング期間でも)と取引頻度の低さが見受けられます。1ヶ月で約250pipsの計算になります。複数の商品で動かすと、例えば月に1000pipsは取れますが、1)不定期、2)ドローダウンはやはり大きくなっていきます。

抽象的に考えると、FXで(紙の上でも)利益を出すという作業は、ほぼ無限大の次元の作業だと考えています。だから、この空間のいろいろなところを、いわば「つつく」ようにしているんです。まあー時には、ローカルで不完全な、問題の解決策が出てくることもあります。

 

alexeymosc さん、もしご迷惑でなければ、もう少し詳しく教えてください。手始めに、データが準備されたスクリプト、またはデータ準備の方法論を教えてください、そして、大体、私はexelではなく、mqlで最終結果を得たいと思っています、mql書き込みへの移行に問題があれば、助けることができると思います、NSプログラミングを勉強します - 私は自分では解決できません、事前にありがとうございます。

 

))全ては既にエクセルにあります(アーカイブを2つ投稿しました)。親しみやすいというか、そういうものなのかなと......。

でも、要は!?

台本がないんです。しかし、MQLでエントリーのフォーメーションを実装するのは難しいことではありません。最後に終了したものを含め、始値で 過去40本の最大値と最小値を計算します。そして、よく知られている計算式で建値を換算する。(Open-Min) / (Max - Min)で、[0;1]の範囲の値を持つ40個の値のベクトルが形成されます。

それなら、個人的にはニューロパッケージでACSを学習させて、Expert Advisorと通信するDLLファイルを作ればいいと思います。私にとっては便利なだけで、しかも同じエクセルですべての分析ができるのは便利です。わざわざMQLでSOMトレーニングをプログラミングするという手もありますが、私はプログラマーではないので、お役に立てません...。テスター用のExpert Advisorのテンプレートと、自己組織化マップのDLLファイルを用意し、コードそのものやニュアンスを共同で最終決定することができますね。

ちなみに、日足チャートで取引できるのは、日足だけではありません。15分足でもOOSで利益が出た)でもドローダウンが大きい・・・。

 
alexeymosc:

始値から、最後に終了したバーを含む過去40本のバーの最大値と最小値を計算する。そして、よく知られた公式を用いて、建値を変換する。(Open-Min) / (Max - Min)で、[0;1]の範囲の値を持つ40個の値のベクトルが形成される。

は、このスクリプトでしょう。

//+------------------------------------------------------------------+
//|                                                     SOM_data.mq4 |
//|                               https://www.mql5.com/ru/users/igorm |
//|                               https://www.mql5.com/ru/users/igorm |
//+------------------------------------------------------------------+
#property copyright "https://www.mql5.com/ru/users/igorm"
#property link      "https://www.mql5.com/ru/users/igorm"

extern int     NumBars = 40;
extern string  FileName = "som_data.csv";

int start(){
   int i,Max,Min,file_handle;
   double _open[];
   double out,max_min;
   ArrayResize(_open,NumBars);
   file_handle = FileOpen(FileName,FILE_CSV|FILE_WRITE);
   if(file_handle<1){
         Print("Файл ",FileName,"не открыт для записи, ошибка №", GetLastError());
         return(0);
    }
    for(i=1;i<=NumBars;i++) _open[i-1] = Open[i];
    Max = ArrayMaximum(_open);
    Min = ArrayMinimum(_open);
    max_min = _open[Max] - _open[Min];
    if (max_min ==0){
         Print("Деление на ноль, невозможно выполнить код");
         return(0);
    }
    for(i=1;i<=NumBars;i++){
        out = (Open[i]-_open[Min]) / max_min;
        FileWrite(file_handle,out);
    }
return(0);
}
//+------------------------------------------------------------------+

コードは少し長いですが、コメントなしで理解できるはずです。

SZZ: Excelは得意ですが、電卓レベルでは滅多にありません ))))

 

ありがとうございました。

スクリプトは動作し、値は正しいです。

今、SOMファイルについて考えているのですが、EAに繋げてみます。