コーディングのヘルプ - ページ 294

 
mladen:
エアクエスト

それを考慮しないと、OKが出ません。

このようなパラメータを持つインジケータを呼び出す最良の方法は、次のとおりです。

iCustom(NULL,targetTimeFrame,indicatorName,",",...,buffer,shift);

ということは、このパラメータには""を使って

Mladenさん、いつもながら、ありがとうございます。

 

TradeStationのバージョンでは、価格が実際にその値を通過する前に、低い時間枠のバーに高い時間枠のインジケータのプロット(存在する場合)をプロットしますが、MT4バージョンではそうではなく、価格がその値を通過するまでプロットしません。

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

スコット

***

#property indicator_chart_window (インジケーターチャートウィンドウ)

#property indicator_buffers 2 (インジケータバッファ2)

#property indicator_color1 ホワイト

#property indicator_color2 ホワイト

//#property indicator_width1 5

//#property indicator_width2 5

//---- 入力パラメータ

/************************************************** ***********************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

期間_W1 10080

期間_MN1 43200

インジケーターでTimeFrameを設定する際は、使用するタイムフレームの数値を使用する必要があります。

インジケーターの入力でTimeFrameの値を設定する際は、使用したいタイムフレームの数値を入力してください。

************************************************** ************************/

extern int TimeFrame = 240;

extern int num = 6;

extern color Color = White;

double vftop[];

double vfbot[];

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int init()

{

//---- インジケータ

IndicatorBuffers(2);

SetIndexBuffer(0, vfbot);

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(0, 117);

SetIndexEmptyValue(0, 0);

SetIndexBuffer(1, vftop);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(1, 117);

SetIndexEmptyValue(1, 0);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="期間_M5"; break;

case 15 : TimeFrameStr="期間_M15"; break;

case 30 : TimeFrameStr="期間_M30"; break;

case 60 : TimeFrameStr="期間_H1"; break;

ケース240 :TimeFrameStr="Period_H4";ブレーク。

ケース1440 :TimeFrameStr="Period_D1"、break。

case 10080 : TimeFrameStr="期間_W1"; break;

case 43200 : TimeFrameStr="期間_MN1"; break;

default : TimeFrameStr="現在のタイムフレーム";

IndicatorShortName("MTF_VolumeFinder ("+TimeFrameStr+")")です。

//----

return(0);

//+------------------------------------------------------------------+

//| カスタムインジケータの初期化関数について

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケーターイテレーション関数

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

int i = Bars - counted_bars;

if(counted_bars == 0) i = Bars - num*2;

int j = 0;

double t1, t2;

int y = 0;

while(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time).t1=iLow(Symbol(),TimeFrame,y)。

t1 = iLow(Symbol(), TimeFrame, y).t2=iHigh(Symbol()、TimeFrame、Time);

t2 = iHigh(Symbol(), TimeFrame, y);

for(j = y+1; j < y + num; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j));

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j));

}

if(t1 <= t2)

{

vftop = t2;

vfbot = t1;

}

i--;

}

//----

return(0);

}

//+------------------------------------------------------------------+

 
scott TTM:
TradeStationのバージョンでは、価格が実際にその値を通過する前に、低い時間枠のバーに高い時間枠のインジケータプロット(存在する場合)をプロットします。しかし、MT4バージョンではそうではなく、価格がその値を通過するまでプロットされません。

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

スコット

***

#プロパティ indicator_chart_window

#property indicator_buffers 2 インジケータバッファ2

#property indicator_color1 ホワイト

#property indicator_color2 ホワイト

//#property indicator_width1 5

//#property indicator_width2 5

//---- 入力パラメータ

/************************************************** ***********************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

期間_W1 10080

期間_MN1 43200

インジケーターでTimeFrameを設定する際は、使用するタイムフレームの数値を使用する必要があります。

インジケーターの入力でTimeFrameの値を設定する際は、使用したいタイムフレームの数値を入力してください。

************************************************** ************************/

extern int TimeFrame = 240;

extern int num = 6;

extern color Color = White;

double vftop[];

double vfbot[];

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int init()

{

//---- インジケータ

IndicatorBuffers(2);

SetIndexBuffer(0, vfbot);

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(0, 117);

SetIndexEmptyValue(0, 0);

SetIndexBuffer(1, vftop);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(1, 117);

SetIndexEmptyValue(1, 0);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="期間_M5"; break;

case 15 : TimeFrameStr="期間_M15"; break;

case 30 : TimeFrameStr="期間_M30"; break;

case 60 : TimeFrameStr="期間_H1"; break;

ケース240 :TimeFrameStr="Period_H4";ブレーク。

ケース1440 :TimeFrameStr="Period_D1"、break。

case 10080 : TimeFrameStr="期間_W1"; break;

case 43200 : TimeFrameStr="期間_MN1"; break;

default : TimeFrameStr="現在のタイムフレーム";

IndicatorShortName("MTF_VolumeFinder ("+TimeFrameStr+")")です。

//----

return(0);

//+------------------------------------------------------------------+

//| カスタムインジケータの初期化関数について

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケーターイテレーション関数

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

int i = Bars - counted_bars;

if(counted_bars == 0) i = Bars - num*2;

int j = 0;

double t1, t2;

int y = 0;

while(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time).t1=iLow(Symbol(),TimeFrame,y)。

t1 = iLow(Symbol(), TimeFrame, y).t2=iHigh(Symbol()、TimeFrame、Time);

t2 = iHigh(Symbol(), TimeFrame, y);

for(j = y+1; j < y + num; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j));

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j));

}

if(t1 <= t2)

{

vftop = t2;

vfbot = t1;

}

i--;

}

//----

return(0);

}

//+------------------------------------------------------------------+

元のtradestationのコードを投稿できますか?

 

探したのですが、見つかりません。 2004年に購入したインジケーターです。

 
scott TTM:
検索してみましたが、見つかりませんでした。 2004年に購入したインジケーターです。

メタトレーダーへの変換は簡単そうに見えても、その差は大きく、100%変換できていないケースもあるので、コードを比較したいので質問しました。

 

Pls Help me

ハイ

MT4 Build 600+で動作するように手助けしていただけませんか?

事前にありがとうございます

ファイル:
sap_robot.mq4  32 kb
forexhacked.mq4  19 kb
 

WPR_MAのバグ

こんにちは、mladen!

少しコーディングのお手伝いをさせてください。

私は、なんとなくですが、1つのインジケーターウィンドウで4つの他のWPRを平均化するインジケーターを書きました。

テンプレートを読み込むと、WPRのMAの違いを見ることができます。

上がインジケーターで、下が手動で混ぜたものです。目標は、マニュアルをインジケータにすることです。

なぜ、そんなことをするのか?私はWPR_MAを間違ってコーディングしたところ。

お時間をいただきありがとうございました。

アドレディオン

ファイル:
 
adledion:
mladenさん、こんにちは。

少しコーディングのお手伝いをさせてください。

私は、なんとなくですが、1つのインジケータウィンドウで4つの他のWPRを平均化するインジケータを書きました。

テンプレートを読み込むと、WPRのMAの違いを見ることができます。

上がインジケーターで、下が手動で混ぜたものです。目標は、マニュアルをインジケータにすることです。

なぜ、そんなことをするのか?私はWPR_MAを間違ってコーディングしたところ。

お時間をいただきありがとうございました。

アドレディオン

アドレディオン

テンプレートでは、maは1つのWPR(そのテンプレートの場合、WPR(50))にのみ適用されます。複数の指標にmaを適用することはできませんので、お使いの指標とテンプレートの間に違いがあるのはそのためです。

試しに、インジケーターのWPRの期間を全て50に設定し、インジケーターの値をテンプレートのmaの前の値(インジケーターでiMAOnArray()にシフト1を使用しているので前)と比較してみると、その場合、全く同じ値を持っていることが分かります。

 
mladen:
アドレディオン

テンプレートでは、maは1つのWPR(そのテンプレートの場合はWPR(50))にのみ適用されます。複数のインジケータにmaを適用することはできず、それがあなたのインジケータとテンプレートの間に違いがある理由です。

試しに、インジケータのWPRの期間をすべて50に設定して、インジケータの値とテンプレートのmaの前の値(iMAOnArray()のインジケータでシフト1を使用しているので前)を比較してみてください。

うわー、ありがとう、そんなに深く掘り下げなかったよ

edit: つまり、マニュアルでは、maは1つのwprにのみ適用されているのですか?

 

Mladen 。

私は少し困惑しているこれらの2つの指標は、再塗装されていますか?https://www.mql5.com/en/forum/172895

これらのヒストグラムは何を表しているか知っていますか?

ファイル:
forexmtn.mq4  3 kb
rd-combo.mq4  11 kb