[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 738

 

了解です、ありがとうございました。

 
spidey:

こんばんは、インジケーターにアラートをつける方法を教えてください。いろいろ試したのですが、刻みごとにビープ音が鳴ったり、全く鳴らなかったり...。


手に入れ、サインをする :)

ファイル:
 
i番目のバーの終値(例えばМ15)とその日の始値をインジケータで比較する方法を教えてください。
 

こんにちは。

ビジュアルテスター用の.hstやエリオット波形を生成する方法(csvファイルでも可)を教えていただけませんか?

 
RomanS:
インジケーターのi-barの終値(例えばМ15)と当日の始値を比較する方法を教えてください


私の説明が悪かったのでしょうか...例えば

#property indicator_separate_window
#property  indicator_buffers 4
#property  indicator_color1  Red
#property  indicator_color2  Green
#property  indicator_color3  Blue
#property  indicator_color4  Black

extern int DAY       = 0;
extern int History   = 500;

double GBP[],EUR[],JPY[],USD[]; 

int init()
  {
   SetIndexBuffer(0, GBP);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(1, EUR);    
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(2, JPY);
   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(3, USD);
   SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2);
   IndicatorShortName("...");
   return;
  }

int start()
  {
  int limit = 0, 
      counted_bars = IndicatorCounted();
      if(counted_bars>0) counted_bars--; 
      limit = Bars - counted_bars;
 
  for(int i=0; i<limit; i++)
    {
     USD[i] = -(iClose("EURUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY))
              -(iClose("GBPUSD",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY))
              +(iClose("USDJPY",NULL,i)-iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i);
     EUR[i] = +(iClose("EURUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY))
              +(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              +(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)/iOpen("GBPUSD",PERIOD_D1,DAY))*iClose("GBPUSD",NULL,i);
     GBP[i] = +(iClose("GBPUSD",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY))
              +(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)/iOpen("GBPUSD",PERIOD_D1,DAY))*iClose("GBPUSD",NULL,i);
     JPY[i] = -(iClose("USDJPY",NULL,i)-iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i);
    }
   return(0);
  }

DAY = 0とすると、i番目のバー(M5とする)の価格は今日の建値と 比較され、DAY = 1とすると、昨日の建値と比較されます。

どうしたらダイナミックにできるのでしょうか。動的に比較したい場合、つまり例えば1278本目のバーをコピーした場合、このバーを見たときのその日の建値と比較されることになります。

 

これは、いくつかの指標MAKDまたはSTOHすべて同じのチャートであると仮定すると、EAでエントリーポイントを記述する方法をアドバイス 売りのためのXmax * 0.25と買いのためのXmin * 0.25。 周期 "n "が一定でなく、XmaxとXminが変化した場合。

ファイル:
ypi.rar  7 kb
 

どのようにしたらそのような演算子を実現できるのか

while ( Условие если закрылся любой ордер )                  
{   то опредеяем тип закрытого ордера из списка   }  
значение передаем следущему оператору

{  по переданому значению выбераем из списка нужный ордер и открываем его  } 
после того как ордер открыт возращяемся в начало

あるいは、このループをどのように実装することができるか

 
RomanS:


説明が間違っていたようです...例えば

DAY = 0とすると、i番目のバー(M5とする)の価格は今日の建値と比較され、DAY = 1とすると昨日と比較される、といった具合です。

どうやったらダイナミックにできるのか...例えば1278本目を計算する場合、このバーが開かれた日の始値と比較されます。

そのために、任意の上級期間のOHLCを返す関数を持っています :)

//+------------------------------------------------------------------+
//| getOHLC                                                          |
//+------------------------------------------------------------------+
double getOHLC(int OHLC, string symbol, int timeframe, int shift = 0){
   if(timeframe < Period())return(-1);
   switch(OHLC){
      case 0:  return(iOpen(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 1:  return(iLow(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 2:  return(iHigh(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 3:  return(iClose(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
   }
}
//+------------------------------------------------------------------+

パラメータ
int OHLC- どのデータが高い時間枠から取得されるべきか、標準定数に 対応する。
string symbol - 楽器のシンボル名.
int timeframe- 標準定数に 対応する,動作する上位のタイムフレームの期間.
int shif t- オプションのパラメータで、古い期間のマッチを検索するために、現在の時間枠の、現在のバーの番号を指定します。

お客様の場合の関数呼び出しの例です。

for(int i=0; i<limit; i++)
    {
     USD[i] = -(iClose("EURUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i))
              -(iClose("GBPUSD",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i))
              +(iClose("USDJPY",NULL,i)-getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i);
     EUR[i] = +(iClose("EURUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i))
              +(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              +(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)/getOHLC(0, "GBPUSD",PERIOD_D1,i))*iClose("GBPUSD",NULL,i);
     GBP[i] = +(iClose("GBPUSD",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i))
              +(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)/getOHLC(0, "GBPUSD",PERIOD_D1,i))*iClose("GBPUSD",NULL,i);
     JPY[i] = -(iClose("USDJPY",NULL,i)-getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i);
    }

したがって、iClose("EURUSD",NULL,i) は現在のチャートのバー番号iの終値、getOHLC(0, "EURUSD",PERIOD_D1,i) は現在のチャートのバーiがある日の始値を求めることになります。

 
RomanS:


説明が間違っていたようです...例えば

DAY = 0とすると、i番目のバー(M5とする)の価格は今日の建値と比較され、DAY = 1とすると、昨日の建値と比較される、など。

どうやったらダイナミックにできるのか...例えば1278本目を計算する場合、このバーが開かれた日の始値と比較されます。

まず、このバーがどの日に対応するのかを計算する必要があります。今、家にいないので、機能は後日、夕方帰宅してからお伝えします。とりあえず自分で検索してみたり、実装方法を考えてみたりしてください。

おっと...すでにバリエーションを提供...。

 
akuma_san1:

これは、いくつかの指標MAKDまたはSTOHすべて同じのチャートであると仮定すると、EAでエントリーポイントを記述する方法をアドバイス 売りのためのXmax * 0.25と買いのためのXmin * 0.25。 周期 "n "が一定でなく、XmaxとXminが変化した場合。

応募基準が非常に曖昧ですね。個人的にはよくわからない。任意のレベルのクロスを制御する必要がある場合、提供されたすべてのパラメータを変更すると、干渉要因がありません。最初のバーでの必須パラメータの値と、2番目のバーでの同じパラメータの値を見てみてください。最初のバーのパラメータの値が指定した閾値より高く、2番目のバーの値が低い場合、下から上へのクロスオーバーが発生しています。最初のバーの値が低く、2番目のバーの値が高い場合、我々は、アップからダウンに交差している。ここでは、買いと売りの2つのシグナルを表示しています。そのため、同じ信号が出ますが、その間、パラメータはモニターされた値の上か下かを確認することができます。
SZY パラメーターが変わらなければ、信号も出ませんから......。:)