アイデア交換 - ページ 35

 
OnGoing:
なんにせよ、結論を出すには取引件数が足りない。
取引回数を増やすと、エクイティの階段はmlnと頻繁になりますが、FSは減少します。
 
alex12:
取引回数を増やすことができます。エクイティの階段は小さく、回数も増えますが、FSは減ります。
そうであっても、結果はより信頼性の高いものになるはずです。
 

昨日、偶然にも面白い結果に出会いました。

ある通貨が他の通貨に対してどのような挙動を示すかを素早くトレースすることです。

このExpert Advisorをダウンロードし、このフォーラムのコードベースにもあります

ファイルからのヒストリカルデータを使用して、計測器をテストします。

テスト終了後、チャートを開くと、次のような 図が表示されます。

さらに、それをテンプレートとして保存します。ユーロバックスの日足チャートを開き、保存したテンプレートを開く

このチャートに次に、アイコンの上でマウスを2回クリックし、右ボタンで「すべてのアイコンを削除」を選択します。

その結果、以下のような画像が表示されます。

つまり、ドル/フランとユーロバックスは、絶対に鏡のような通貨商品であることがわかると思います。





 
alex12:

昨日、偶然にも面白い結果に出会いました。

ある通貨が他の通貨に対してどのような挙動を示すかを素早くトレースすることです。

このExpert Advisorをダウンロードし、このフォーラムのコードベースにもあります

ファイルからのヒストリカルデータを使用して、計測器をテストします。

テスト終了後、チャートを開くと、次のような 図が表示されます。

さらに、それをテンプレートとして保存します。ユーロバックスの日足チャートを開き、保存したテンプレートを開く

このチャートに次に、アイコンの上でマウスを2回クリックし、右ボタンで「すべてのアイコンを削除」を選択します。

その結果、以下のような画像が表示されます。

つまり、ドル/フランとユーロバックスは、絶対に鏡のような通貨商品であることがわかると思います。






ああ、私たちにはどんなに素晴らしい発見があることか・・・・・・。
 
指標を 作るということです。

もともとティックでこのアイデアを思いついたのですが、テスター
にはティックの履歴がないことが判明したので、バーに移しました。
設定は以下の通りです。

Up - Buy:

Bullish = 0, Value
Bears = 0, Value
Colour
Line Thickness

Down - Sell:

Bears = 0, Value
Bulls = 0, Value
Colour
Line Thickness

例えば1バー1アップ、2ダウン、1アップ、3ダウン、そしてSellには1/4、1/5、 !/6, 1/7 等が考えられます。
Baiの場合 - 1小節下がって2小節上がる、1下がって3上がる、そして1/4、1/5、など。

例えば、3本の上昇バーと7本の下降バーの組み合わせ(略して3/7)を売りにしてみましょう。3本目のバーの最高値と7本目のバーの最安値の値
=平均価格を算出し、このバーの組み合わせの平均価格に線
。 また、この組み合わせを同じインジケータを使って円
で囲みたいと思います。
次にこのインジケータを使ってEAを書き、結果を確認します。

もし、どなたかインジケーターやアドバイザーを書かれた方がいらっしゃいましたら、差し支えなければここに投稿してください。

--------------------------------------------------------------------------------------------------------------+

ちなみに-ポイントでも可能です-オンラインで直接取引すればいいのです。
WOC EAのように時間ではなく、正確にポイントの組み合わせで、エキスパートアドバイザーが歴史によってではなく、現在の状況によって取引することが判明します。
。でも、そうなんです、
は浅はかであり、ありえないことでしょう--自分でもよくわからないのですが
[Удален]  

leonid553 さん

Envelopesという インジケータがあり、それを使った古典的な戦術が知られています。しかし、その構造上、あまりにも「敏感」であったり、周期が大きかったりするため、多くの信号が遅れてしまうのです。しかし、この指標を滑らかにすると、状況は一変する!?ボーダーがローソクの先端だけを覆うようにボーダーの偏差を選択し、この交差点でトレンドに厳格に従ってエントリーします。- このボーダーの傾斜角度(例)により、プログラム的に(トレンドを)設定します。

1つのバージョンは、購入時に動作します。もう一つのバージョンは、セルに対応しています。同時に、トレンドの転換点での負けトレードも意外と見逃してしまうのです- 皮肉はいらない!しかも、フラットな状態で、お得感なし!?(トレンドは傾斜角で決まるから!)

これは平滑化された指標チャートです。エントリーポイントは矢印で示されています。

もうひとつの仕掛けフィルターとして、または別バージョンとして使用することができます。ストキャスティック。古典的なルールで使うのではなく、少し非標準的な使い方をすべきなのです買われすぎ・売られすぎゾーンの外側から内側へのクロスではなく、その逆のクロスで、長い時間をかけてエントリーしてください。- ストキャスティックウィンドウに矢印でエントリーを表示させました。

私はすでに両方の記述された方法を使用して原始的な専門家の Advisors を作りました。 結果は今のところ満足しますです...

モデレーターGranit77の要請により、元の投稿は削除され、フィルター付きストキャスティクスに関するExpert Advisorの議論はここに移されました。https://www.mql5.com/ru/forum/112887/page15#518639

 
alex12:
指標を作るということです。

このアイデアは、もともと私がティックで考案したものですが、テスターにティックの履歴がないことが判明しています
そこで、棒鋼にシフトしたのです。
エッセンスはバーの組み合わせです。設定は以下のようになります。

上-購入する。

Bullish = 0, Value.
ベアーズ=0、意味
カラー
線の太さ

下 - 売る。

ベアーズ = 0, 値
強気 = 0, 価値
カラー
線の太さ

例:1小節上がって2小節下がる、1小節上がって3小節下がる、次に1/4、1/5、!/6、1/7など、売りは1小節上がる、2小節下がる。
Baiの場合 - 1小節下がって2小節上がる、1下がって3上がる、そして1/4、1/5、など。

例えば、3本の上昇バーと7本の下降バーの組み合わせ(略して3/7)を売りにしてみましょう。値をとります。
3本目の最高値と7本目の最安値=平均値を計算し、線を引く。
また、このバーの組み合わせを円形に描画してほしい
同じインジケータを使用しています。
そして、このインジケータを使ってEAを書き、結果を確認することができます。

もし、どなたかインジケーターやアドバイザーを書かれた方がいらっしゃいましたら、差し支えなければここに投稿してください。

--------------------------------------------------------------------------------------------------------------+

ちなみに-ポイントでも可能で、必要なのはオンライントレードのみです。
WOC-advisorのように時間単位ではなく、正確には点の組み合わせで判断します。
Expert Advisorが履歴に基づいて取引するのではなく、現在の状況に基づいて取引すること。でも、そうなんです。
確かなことは分からないが。
私自身はよくわからないのですが。

上記のようなカスタムインジケーターを作りました。なぜならば、=正確である(与えられたフラクタルパターンを間違いなく特定できる)。


以下は、コードそのものです。

//+------------------------------------------------------------------+
//|                             Copyright © 2010, Trishkin Artyom A. |
//|                                           support@goldsuccess.ru |
//|                                           Skype: Artmedia70      |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Trishkin Artyom A."
#property link      "support@goldsuccess.ru"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Gold
#property indicator_color2 LightBlue
//---- input parameters
extern int        BarsBefore=2;        // Баров до...
extern int        BarsAfter=2;         // Баров после
extern int        Width=2;             // Размер значка
extern int        BarsToProcess=100;   // Количество баров для поиска
//---- buffers
double FractUpBuffer1[];
double FractDnBuffer2[];
string sy, Prefix, NameIND;
int    tf;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
   SetIndexStyle(0,DRAW_ARROW,EMPTY,0);
   SetIndexBuffer(0,FractUpBuffer1);
   SetIndexArrow(0,119);
   SetIndexLabel(0,"Fractal Up");
   SetIndexEmptyValue(0,0.0);
   
   SetIndexStyle(1,DRAW_ARROW,EMPTY,0);
   SetIndexBuffer(1,FractDnBuffer2);
   SetIndexArrow(1,119);
   SetIndexLabel(1,"Fractal Dn");
   SetIndexEmptyValue(1,0.0);
//----
   NameIND="Pattern_v1_01";
   IndicatorShortName(NameIND+"_"+GetNameTF(Period()));
   Prefix=NameIND+"_"+GetNameTF(Period());    // Префикс для имён объектов
   sy=Symbol();
   tf=Period();
   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
// -------- Блок удаления всех объектов, построенных на графике --------
   string Name_Del[1]; 
   int Quant_Del=0;                    
   int Quant_Objects=ObjectsTotal();   
   int LenPref=StringLen(Prefix);
   ArrayResize(Name_Del,Quant_Objects);
   for(int k=0; k<Quant_Objects; k++) {
      string Obj_Name=ObjectName(k);   
      string Head=StringSubstr(Obj_Name,0,LenPref);
      if (Head==Prefix) {                              
         Quant_Del+=1;        
         Name_Del[Quant_Del-1]=Obj_Name;
         }
     }
   for(int i=0; i<Quant_Del; i++)    
      ObjectDelete(Name_Del[i]); 
// ----- Конец блока удаления всех объектов, построенных на графике -----
   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int   counted_bars=IndicatorCounted();
   int   i, k, j, limit;
//----
   if(counted_bars>0)      counted_bars--;
   limit=Bars-counted_bars;
   if(limit>BarsToProcess) limit=BarsToProcess;
   
//   if (limit>0) 
      FindUpFractals(BarsBefore, BarsAfter);
      FindDnFractals(BarsBefore, BarsAfter);
   
//----
   return(0);
}
//==============================================================================
// --------------------------------- Функции ----------------------------------+
//==============================================================================
int FindDnFractals(int nl, int nr) {
   int      i, k, nb;
   double   fractal;
   datetime tm;
   string   nm;
   bool     fl, fr;
   int delta=SetDistance(Period());
   for (i=BarsToProcess; i>0; i--) {
      fl=false;
      FractDnBuffer2[i]=0;
      if (Open[i]<Close[i]) {                   
         for (k=1; k<=nl; k++) {
            if (Open[i+k]>Close[i+k]) fl=true;
            else { fl=false; break; }
            }
         if (!fl || Open[i+nl+1]>Close[i+nl+1]) continue;
         fr=false;
         for (k=0; k<nr; k++) {
            if (Open[i-k]<Close[i-k]) fr=true;
            else { fr=false; break; }
            }
         if (!fr || Open[i-nr]<Close[i-nr] || iBarShift(sy,tf,Time[i-nr])==0) continue;
         if (Low[i]<Low[i+1]) { fractal=Low[i]; nb=i; tm=Time[i];}
         else { fractal=Low[i+1]; nb=i+1; tm=Time[i+1]; }
         FractDnBuffer2[nb]=fractal;
         nm=Prefix+"_Down_Fractal_"+nl+"/"+nr+"_"+TimeToStr(tm);
         fractal=MathMin(Low[i], Low[i+1]);
         SetArrow(218, LightBlue, nm, tm, fractal-delta*Point, Width);
         WindowRedraw();
         }
      }
   return(0);
}   
//+----------------------------------------------------------------------------+
int FindUpFractals(int nl, int nr) {
   int      i, k, nb;
   double   fractal;
   datetime tm;
   string   nm;
   bool     fl, fr;
   int delta=SetDistance(Period());
   for (i=BarsToProcess; i>0; i--) {
      fl=false;
      FractUpBuffer1[i]=0;
      if (Open[i]>Close[i]) {                   
         for (k=1; k<=nl; k++) {
            if (Open[i+k]<Close[i+k]) fl=true;
            else { fl=false; break; }
            }
         if (!fl || Open[i+nl+1]<Close[i+nl+1]) continue;
         fr=false;
         for (k=0; k<nr; k++) {
            if (Open[i-k]>Close[i-k]) fr=true;
            else { fr=false; break; }
            }
         if (!fr || Open[i-nr]>Close[i-nr] || iBarShift(sy,tf,Time[i-nr])==0) continue;
         if (High[i]>High[i+1]) { fractal=High[i]; nb=i; tm=Time[i];}
         else { fractal=High[i+1]; nb=i+1; tm=Time[i+1]; }
         FractUpBuffer1[nb]=fractal;
         nm=Prefix+"_Up_Fractal_"+nl+"/"+nr+"_"+TimeToStr(tm);
         fractal=MathMax(High[i], High[i+1]);
         SetArrow(217, PaleGoldenrod, nm, tm, fractal+4*delta*Point, Width);
         WindowRedraw();
         }
      }
   return(0);
}   
//+----------------------------------------------------------------------------+
string GetNameTF(int TimeFrame=0) {
   switch (TimeFrame) {
      case PERIOD_M1:  return("M1");
      case PERIOD_M5:  return("M5");
      case PERIOD_M15: return("M15");
      case PERIOD_M30: return("M30");
      case PERIOD_H1:  return("H1");
      case PERIOD_H4:  return("H4");
      case PERIOD_D1:  return("Daily");
      case PERIOD_W1:  return("Weekly");
      case PERIOD_MN1: return("Monthly");
      default:         return("UnknownPeriod");
      }
}
//+----------------------------------------------------------------------------+
int SetDistance(int TimeFrame) {
   switch (TimeFrame) {
      case PERIOD_M1:  return(1);
      case PERIOD_M5:  return(1);
      case PERIOD_M15: return(2);
      case PERIOD_M30: return(3);
      case PERIOD_H1:  return(4);
      case PERIOD_H4:  return(4);
      case PERIOD_D1:  return(4);
      case PERIOD_W1:  return(4);
      case PERIOD_MN1: return(4);
      default:         return(0);
      }
}
//+----------------------------------------------------------------------------+
void SetArrow(int cd, color cl, string nm, datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSet(nm, OBJPROP_ARROWCODE, cd);
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
//+----------------------------------------------------------------------------+
ファイル:
 
alex12:

上記のような特注のターキーがこちらです。かなり面白い - なぜなら、=正確(フラクタルパターンを正しく検出する)。


以下は、コードそのものです。

コードをありがとうございました。なぜか1時間足だけ表示され、他の半分には表示されない。
 

То есть видно что доллар/франк и евробакс – абсолютно зеркальные валютные инструменты.

絶対」という言葉には、もう少し気をつけたほうがいいかもしれませんね。

水槽の中の 方へ 画像へのコメント:X=10、20、100、250のローソク足で平均値をとりました。左側のタイムフレームはM30、右側は-D1です。ゼロに近いものは、直近のX本のローソク足[平均値]に「ミラーリング」がないことを意味します。

そのままでは、楽器は似たような動きをし、時には同じ方向に動くこともあり、それは周期的な相関関係で確認される。しかし、それは共積分でもなく、非定常のEURCHFのチャートによって証明されています(明確な確認はできませんが、私はテストしていないので、無意味なことだと思います)。

 
alex12:

上記のような特注のターキーがこちらです。かなり面白い - なぜなら、=正確(フラクタルパターンを正しく検出する)。

以下は、コードそのものです。


ありがとうございました。面白いアイデアですね。

すべてのTFで表示されます。しかし、黄色のフラクタルは何かがおかしい。すべてのTFに異なる距離で描かれ、青色と同じではありません。

ぜひチェックしてみてください

SetArrow(217, PaleGoldenrod, nm, tm, fractal+4*delta*Point, Width);//?????