#property copyright"2009, MetaQuotes Software Corp."#property link"http://www.mql5.com"#property description"Bears Power"//--- indicator settings#property indicator_chart_window//---------------------------------#property indicator_buffers2#property indicator_plots1#property indicator_type1DRAW_LINE//---------------------------------------#property indicator_color1 Silver
#property indicator_width12//--- input parametersinputint InpBearsPeriod=13; // Period//--- indicator buffersdouble ExtBearsBuffer[];
double ExtTempBuffer[];
//--- handle of EMA int ExtEmaHandle;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+voidOnInit()
{
//--- indicator buffers mappingSetIndexBuffer(0,ExtBearsBuffer,INDICATOR_DATA);
SetIndexBuffer(1,ExtTempBuffer,INDICATOR_CALCULATIONS);
//---IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//--- sets first bar from what index will be drawnPlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpBearsPeriod-1);
//--- name for DataWindow and indicator subwindow labelIndicatorSetString(INDICATOR_SHORTNAME,"Bears("+(string)InpBearsPeriod+")");
//--- get MA handle
ExtEmaHandle=iMA(NULL,0,InpBearsPeriod,0,MODE_EMA,PRICE_CLOSE);
//--- initialization done
}
//+------------------------------------------------------------------+//| Average True Range |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &Time[],
constdouble &Open[],
constdouble &High[],
constdouble &Low[],
constdouble &Close[],
constlong &TickVolume[],
constlong &Volume[],
constint &Spread[])
{
int i,limit;
//--- check for bars countif(rates_total<InpBearsPeriod)
return(0);// not enough bars for calculation //--- not all data may be calculatedint calculated=BarsCalculated(ExtEmaHandle);
if(calculated<rates_total)
{
Print("Not all data of ExtEmaHandle is calculated (",calculated,"bars ). Error",GetLastError());
return(0);
}
//--- we can copy not all dataint to_copy;
if(prev_calculated>rates_total || prev_calculated<0) to_copy=rates_total;
else
{
to_copy=rates_total-prev_calculated;
if(prev_calculated>0) to_copy++;
}
//---- get ma buffersif(IsStopped()) return(0); //Checking for stop flagif(CopyBuffer(ExtEmaHandle,0,0,to_copy,ExtTempBuffer)<=0)
{
Print("getting ExtEmaHandle is failed! Error",GetLastError());
return(0);
}
//--- first calculation or number of bars was changedif(prev_calculated<InpBearsPeriod)
limit=InpBearsPeriod;
else limit=prev_calculated-1;
//--- the main loop of calculationsfor(i=limit;i<rates_total && !IsStopped();i++)
{
ExtBearsBuffer[i]=iCustom(NULL,0,"Downloads\\RSI Analytics"); \\--------------------------------------------
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
Зачем нам RSI в отдельном окне, если его можно построить в основном окне графика, что гораздо более понятно? RSI ANALYTICS - это индикатор, следящий за рынком, созданный на основе той же идеи, что и традиционный RSI (индекс относительной силы). При этом он строится не в отдельном подокне, а в том же окне, что и график цены финансового...
mql4では、プログラミングを全く知らないのに、iCustomを使って、他人の既成のインジケータを利用したインジケータを作りました...。直感はもういいんです。mql5を使用していますが、いくら理解しても何も動きません。お願いします、助けてください。
ex5でこの インジケータを使用しています。ダウンロードフォルダに入れました。その両方の線を取り出して、他の期間のチャートに描きたい、つまりiCustomでマルチタイムフレームにしたいのです。
一からインジケータを書くことはできないので、簡単なBears Powerのインジケータのコードを引用しています。indicator_chart_windowとDRAW_LINEとラインを変更した以外、そこは何も変更していないのですが、私の考えでは、現在のTFのデフォルトパラメータで最初のバッファのデータを取り出せばよいのではと思います。
すべてがコンパイルされ、何も描画されない。他に必要なものはありますか?:(
mql4では、プログラミングを全く知らないのに、iCustomを使って、他人の既成のインジケータを利用したインジケータを作りました...。直感はもういいんです。mql5を使用していますが、いくら理解しても何も動きません。お願いしたいことがあります。
ex5でこの インジケータを使用しています。ダウンロードフォルダに入れました。その両方の線を取り出して、他の期間のチャートに描きたい、つまりiCustomでマルチタイムフレームにしたいのです。
一からインジケータを書くことはできないので、簡単なBears Powerのインジケータのコードを引用しています。indicator_chart_windowとDRAW_LINEとラインを変更した以外、そこは何も変更していないのですが、私の考えでは、現在のTFのデフォルトパラメータで最初のバッファのデータを取り出せばよいのではと思います。
すべてがコンパイルされ、何も描画されない。他に必要なものはありますか?:(
mql5では、カスタムおよび標準のインジケータを使用した作業は、mql4とは異なる構成になっています。mql4ではiCustomを通して1つの指標値しか取得できなかったのが、mql5では配列でヒストリーの全深さの指標値を取得することができます。2つ目の大きな違いは、インジケーターバッファのインデックスの方向性です。
すべてのコードに目を通し、オリジナルと照らし合わせるのは面倒なので、主なものだけ指摘します。
ファイルはIndicatorsフォルダまたは同じIndicatorsにあるサブフォルダ内に配置する必要があります。
以下は、MAインジケータのハンドルを取得するためのラインです。
で、これはMAインジケータの値を取得するための文字列です。
この場合、追加のバッファまたは配列になります。
カスタムインジケータのデータを取得するために、以下のことが判明しました。
そして、この追加バッファから何らかの方法でインジケータ値を処理することもできますし、インデックスの方向を忘れることなくインジケータバッファに入れることもできます。
ありがとうございました。理解したとおりに書いたら、今はコンパイル時に1つだけエラーが出ます。ライン上
errorto_copy - 未宣言の識別子 です。
どのセクションで、どのように宣言すればよいのでしょうか?
ありがとうございました。理解したとおりに書いたら、今はコンパイル時に1つだけエラーが出ます。ライン上
errorto_copy - 未宣言の識別子 です。
どのセクションで、どのように宣言すればよいのでしょうか?
私のヒントとあなたのコード、そしてすでに修正したソースコードを比較する必要があります。この変数は、これらのコードで宣言されています。また、私の発言に加え、クソをクソに変えるのではなく、一般的にインジケーターの構築のロジックを理解するようにしたほうがいい。
MetaTrader5では、ある通貨ペアのEAのパフォーマンスが、例えばRTS指数のパフォーマンスと極端に異なることがあるのでしょうか?
参議院は、その通りに動く。それ以外でもない。
RTSは取引所であるため、会計上のポジションはネッティング方式です。EAがもともと網の上で動作するように設計されていない場合、結果は予測不可能です。
参議院は、その通りに動く。それ以外でもない。
RTSは取引所であるため、会計上のポジションはネッティング方式です。EAがもともと網の上で動作するように設計されていない場合、結果は予測不可能です。
EAがネットで動作することを 意図していない場合、結果は予測不可能です。
この戦略には、多方向のポジションはありません。
ありがとうございます。ネット上で動作する ように設計されているか どうかは、コードからどのように確認するのでしょうか。
戦略上、反対方向のポジションは存在しない。
そして、もしそうなら(仕事では常に1つのポジション)、ネッティングでもヘッジングでも違いはないのです。
この場合(運用中のポジションは常にONE)、ネッティングであろうとヘッジであろうと違いはない。
通貨(FX)のリバースシグナルでは、ポジションはクローズされますが、取引所ではクローズされません。どこを見ればいいのか、何を見ればいいのか。
通貨のリバースシグナルでは、ポジションはクローズされますが、取引所ではクローズされません。どこを見ればいいのか、何を見ればいいのか。
ポジションを 閉じるという指令が来ている場所を探すこと。