忍者ブログ

forex tester2のインディケーターを自作

fx(外国為替証拠金取引)のトレードの練習やルールの検証をForex Tester 2というソフトでしてみます。 Meta Trader4(MT4)のインディケーター(indicator)をForex Tester2用に移植できたらしてみます。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


plombiers.mq5

plombiers.mq5 みたいなのをForexTester2用に移植してみました。

dllのみの販売です。
plombiers.mq5 [ForexTester2用indicator]

c++ソースコードの販売です。
plombiers c++ ソース [ForexTester2用indicator]

MT5の表示です。



FT2の表示です。


PR

コメント

Kairi.mq4のインジエータを作成していただけないでしょうか?
よろしくお願いします。


//+------------------------------------------------------------------+
//| Kairi.mq4 |
//| Copyright(C) 2005 S.B.T. All Rights Reserved. |
//| http://fumito.s68.xrea.com/sb/sufx/ |
//+------------------------------------------------------------------+
#property copyright "Copyright(C) 2005 S.B.T. All Rights Reserved."
#property link "http://fumito.s68.xrea.com/sb/sufx/"
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- indicator parameters
extern int MA_Period=21;
extern int MA_Method=0;
extern int Apply=0;
//---- indicator buffers
double Kairi_buffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name1,short_name2;

//---- drawing settings
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
//---- indicator buffers mapping
if(!SetIndexBuffer(0,Kairi_buffer))
Print("cannot set indicator buffers!");
//---- name for DataWindow and indicator subwindow label
switch(MA_Method)
{
case 1 : short_name1="EMA("; break;
case 2 : short_name1="SMMA("; break;
case 3 : short_name1="LWMA("; break;
default :
MA_Method=0;
short_name1="SMA(";
}
switch(Apply)
{
case 1 : short_name2="Apply to Open price"; break;
case 2 : short_name2="Apply to High price"; break;
case 3 : short_name2="Apply to Low price"; break;
case 4 : short_name2="Apply to Median price, (high+low)/2"; break;
case 5 : short_name2="Apply to Typical price, (high+low+close)/3"; break;
case 6 : short_name2="Apply to Weighted close price, (high+low+close+close)/4"; break;
default :
Apply=0;
short_name2="Apply to Close price";
}
IndicatorShortName("Kairi("+short_name1+"("+MA_Period+")) "+short_name2);
SetIndexLabel(0,"Kairi");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
double MA_buffer[];
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
ArrayResize(MA_buffer,limit);
//---- macd counted in the 1-st buffer
for(int i=0; i<limit; i++) {
switch(MA_Method) {
case 0 :
switch(Apply) {
case 0 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_CLOSE,i); break;
case 1 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_OPEN,i); break;
case 2 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_HIGH,i); break;
case 3 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_LOW,i); break;
case 4 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_MEDIAN,i); break;
case 5 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_TYPICAL,i); break;
case 6 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_WEIGHTED,i); break;
}
break;
case 1 :
switch(Apply) {
case 0 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_EMA,PRICE_CLOSE,i); break;
case 1 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_EMA,PRICE_OPEN,i); break;
case 2 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_EMA,PRICE_HIGH,i); break;
case 3 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_EMA,PRICE_LOW,i); break;
case 4 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_EMA,PRICE_MEDIAN,i); break;
case 5 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_EMA,PRICE_TYPICAL,i); break;
case 6 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_EMA,PRICE_WEIGHTED,i); break;
}
break;
case 2 :
switch(Apply) {
case 0 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMMA,PRICE_CLOSE,i); break;
case 1 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMMA,PRICE_OPEN,i); break;
case 2 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMMA,PRICE_HIGH,i); break;
case 3 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMMA,PRICE_LOW,i); break;
case 4 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMMA,PRICE_MEDIAN,i); break;
case 5 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMMA,PRICE_TYPICAL,i); break;
case 6 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMMA,PRICE_WEIGHTED,i); break;
}
break;
case 3 :
switch(Apply) {
case 0 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_LWMA,PRICE_CLOSE,i); break;
case 1 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_LWMA,PRICE_OPEN,i); break;
case 2 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_LWMA,PRICE_HIGH,i); break;
case 3 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_LWMA,PRICE_LOW,i); break;
case 4 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_LWMA,PRICE_MEDIAN,i); break;
case 5 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_LWMA,PRICE_TYPICAL,i); break;
case 6 :
MA_buffer[i]=iMA(NULL,0,MA_Period,0,MODE_LWMA,PRICE_WEIGHTED,i); break;
}
break;
}
}

for(i=0; i<limit; i++) {
switch(Apply)
{
case 0 : Kairi_buffer[i] = (Close[i]-MA_buffer[i])/MA_buffer[i]*100; break;
case 1 : Kairi_buffer[i] = (Open[i]-MA_buffer[i])/MA_buffer[i]*100; break;
case 2 : Kairi_buffer[i] = (High[i]-MA_buffer[i])/MA_buffer[i]*100; break;
case 3 : Kairi_buffer[i] = (Low[i]-MA_buffer[i])/MA_buffer[i]*100; break;
case 4 : Kairi_buffer[i] = (((High[i]+Low[i])/2)-MA_buffer[i])/MA_buffer[i]*100-100; break;
case 5 : Kairi_buffer[i] = (((High[i]+Low[i]+Close[i])/3)-MA_buffer[i])/MA_buffer[i]*100-100; break;
case 6 : Kairi_buffer[i] = (((High[i]+Low[i]+Close[i]+Close[i])/4)-MA_buffer[i])/MA_buffer[i]*100-100; break;
}
}

return(0);
}
fx練習生様

初めまして。FT2でTHV4(のTRIX)を検証したいのですが、以前作成されたTRIX_Aとは少し違うようです。ソース付で4000円で作成いただけないでしょうか。あるいは、TRIX_Aと近ければ計算式だけ加工してリコンパイルでもいいのですが、当方FT2独自のライブラリに疎いもので。。。

以下、ソースです。

//+------------------------------------------------------------------+
//| Trix.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link "http://mandalpha.blog136.fc2.com/"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

extern int barsCount=500;
extern int TrixA_period=20;
extern int TrixB_period=35;

double ExtMapBuffer1[];
double ExtMapBuffer2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init() {
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);

return(0);
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+

int deinit() {
return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+

int start() {
int shift=0;
double A_t3=0,A_t3_1=0,max_per=0;
double B_t3=0,B_t3_1=0;
double e1=0,e2=0,e3=0,e4=0,e5=0,e6=0,c1=0,c2=0,c3=0,c4=0;
double e1x=0,e2x=0,e3x=0,e4x=0,e5x=0,e6x=0;
double d1=0,d2=0,d3=0,d4=0,d5=0,d6=0;
double d1x=0,d2x=0,d3x=0,d4x=0,d5x=0,d6x=0;
double n=0,A_w1=0,A_w2=0,B_w1=0,B_w2=0,b2=0,b3=0;
double init=true;
double bar=0, prevbars=0, start=0, cs=0, prevcs=0,frame=0;
string commodt="nonono";
int counted_bars=IndicatorCounted();

cs = barsCount+TrixA_period+0+TrixB_period+0+1.1;

if (cs==prevcs && commodt==Symbol() && frame==Time[4]-Time[5] && Bars-prevbars<2)
start=Bars-prevbars;
else start=-1;
commodt=Symbol();
frame=Time[4]-Time[5];
prevbars = Bars;
prevcs = cs;

if (start==1 || start==0) bar=start; else init=true;

if (init==true) {
b2=1.1*1.1;
b3=b2*1.1;
c1=-b3;
c2=(3*(b2+b3));
c3=-3*(2*b2+1.1+b3);
c4=(1+3*1.1+b3+3*b2);
n=TrixA_period;

if (n<1) n=1;
n = 1 + 0.5*(n-1);
A_w1 = 2 / (n + 1);
A_w2 = 1 - A_w1;
n=TrixB_period;

if (n<1) n=1;
n = 1 + 0.5*(n-1);
B_w1 = 2 / (n + 1);
B_w2 = 1 - B_w1;

ExtMapBuffer1[barsCount-1]=0;
e1x=0;e2x=0;e3x=0;e4x=0;e5x=0;e6x=0;
ExtMapBuffer2[barsCount-1]=0;
d1x=0;d2x=0;d3x=0;d4x=0;d5x=0;d6x=0;
bar=barsCount-2;
init=false;
}

shift=bar;
while(shift>=0) {
if ( 0==1 ) d1 = A_w1*Open[shift] + A_w2*d1x;
else d1 = A_w1*Close[shift] + A_w2*d1x;

d2 = A_w1*d1 + A_w2*d2x;
d3 = A_w1*d2 + A_w2*d3x;
d4 = A_w1*d3 + A_w2*d4x;
d5 = A_w1*d4 + A_w2*d5x;
d6 = A_w1*d5 + A_w2*d6x;
A_t3 = c1*d6 + c2*d5 + c3*d4 + c4*d3;

if ((start==1 && shift==1) || start==-1) {
d1x=d1;
d2x=d2;
d3x=d3;
d4x=d4;
d5x=d5;
d6x=d6;
}

e1 = B_w1*Close[shift] + B_w2*e1x;
e2 = B_w1*e1 + B_w2*e2x;
e3 = B_w1*e2 + B_w2*e3x;
e4 = B_w1*e3 + B_w2*e4x;
e5 = B_w1*e4 + B_w2*e5x;
e6 = B_w1*e5 + B_w2*e6x;
B_t3 = c1*e6 + c2*e5 + c3*e4 + c4*e3;

if(0==1) {
ExtMapBuffer1[shift]=(A_t3-A_t3_1)/A_t3_1;
ExtMapBuffer2[shift]=(A_t3-A_t3_1)/A_t3_1+(B_t3-B_t3_1)/B_t3_1;
}
else {
if ( B_t3_1 >0 && A_t3_1>0) {
ExtMapBuffer2[shift]=(B_t3-B_t3_1)/B_t3_1;
ExtMapBuffer1[shift]=(A_t3-A_t3_1)/A_t3_1;
}
}

if ((start==1 && shift==1) || start==-1) {
A_t3_1=A_t3;
B_t3_1=B_t3;
e1x=e1;
e2x=e2;
e3x=e3;
e4x=e4;
e5x=e5;
e6x=e6;
}

shift--;
}
}

しゅシュ しゅげぇーーーー

MQL5でも できちゃうんですネ~

さっそく購入いたします。 ありがとうございます~ ヽ(‘ ▽‘ )ノ
fx練習生様

初めまして。FT2でTHV4(のTRIX)を検証したいのですが、以前作成されたTRIX_Aとは少し違うようです。ソース付で4000円で作成いただけないでしょうか。あるいは、TRIX_Aと近ければ計算式だけ加工してリコンパイルでもいいのですが、当方FT2独自のライブラリに疎いもので。。。

以下、ソースです。

//+------------------------------------------------------------------+
//| Trix.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link "http://mandalpha.blog136.fc2.com/"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

extern int barsCount=500;
extern int TrixA_period=20;
extern int TrixB_period=35;

double ExtMapBuffer1[];
double ExtMapBuffer2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init() {
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);

return(0);
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+

int deinit() {
return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+

int start() {
int shift=0;
double A_t3=0,A_t3_1=0,max_per=0;
double B_t3=0,B_t3_1=0;
double e1=0,e2=0,e3=0,e4=0,e5=0,e6=0,c1=0,c2=0,c3=0,c4=0;
double e1x=0,e2x=0,e3x=0,e4x=0,e5x=0,e6x=0;
double d1=0,d2=0,d3=0,d4=0,d5=0,d6=0;
double d1x=0,d2x=0,d3x=0,d4x=0,d5x=0,d6x=0;
double n=0,A_w1=0,A_w2=0,B_w1=0,B_w2=0,b2=0,b3=0;
double init=true;
double bar=0, prevbars=0, start=0, cs=0, prevcs=0,frame=0;
string commodt="nonono";
int counted_bars=IndicatorCounted();

cs = barsCount+TrixA_period+0+TrixB_period+0+1.1;

if (cs==prevcs && commodt==Symbol() && frame==Time[4]-Time[5] && Bars-prevbars<2)
start=Bars-prevbars;
else start=-1;
commodt=Symbol();
frame=Time[4]-Time[5];
prevbars = Bars;
prevcs = cs;

if (start==1 || start==0) bar=start; else init=true;

if (init==true) {
b2=1.1*1.1;
b3=b2*1.1;
c1=-b3;
c2=(3*(b2+b3));
c3=-3*(2*b2+1.1+b3);
c4=(1+3*1.1+b3+3*b2);
n=TrixA_period;

if (n<1) n=1;
n = 1 + 0.5*(n-1);
A_w1 = 2 / (n + 1);
A_w2 = 1 - A_w1;
n=TrixB_period;

if (n<1) n=1;
n = 1 + 0.5*(n-1);
B_w1 = 2 / (n + 1);
B_w2 = 1 - B_w1;

ExtMapBuffer1[barsCount-1]=0;
e1x=0;e2x=0;e3x=0;e4x=0;e5x=0;e6x=0;
ExtMapBuffer2[barsCount-1]=0;
d1x=0;d2x=0;d3x=0;d4x=0;d5x=0;d6x=0;
bar=barsCount-2;
init=false;
}

shift=bar;
while(shift>=0) {
if ( 0==1 ) d1 = A_w1*Open[shift] + A_w2*d1x;
else d1 = A_w1*Close[shift] + A_w2*d1x;

d2 = A_w1*d1 + A_w2*d2x;
d3 = A_w1*d2 + A_w2*d3x;
d4 = A_w1*d3 + A_w2*d4x;
d5 = A_w1*d4 + A_w2*d5x;
d6 = A_w1*d5 + A_w2*d6x;
A_t3 = c1*d6 + c2*d5 + c3*d4 + c4*d3;

if ((start==1 && shift==1) || start==-1) {
d1x=d1;
d2x=d2;
d3x=d3;
d4x=d4;
d5x=d5;
d6x=d6;
}

e1 = B_w1*Close[shift] + B_w2*e1x;
e2 = B_w1*e1 + B_w2*e2x;
e3 = B_w1*e2 + B_w2*e3x;
e4 = B_w1*e3 + B_w2*e4x;
e5 = B_w1*e4 + B_w2*e5x;
e6 = B_w1*e5 + B_w2*e6x;
B_t3 = c1*e6 + c2*e5 + c3*e4 + c4*e3;

if(0==1) {
ExtMapBuffer1[shift]=(A_t3-A_t3_1)/A_t3_1;
ExtMapBuffer2[shift]=(A_t3-A_t3_1)/A_t3_1+(B_t3-B_t3_1)/B_t3_1;
}
else {
if ( B_t3_1 >0 && A_t3_1>0) {
ExtMapBuffer2[shift]=(B_t3-B_t3_1)/B_t3_1;
ExtMapBuffer1[shift]=(A_t3-A_t3_1)/A_t3_1;
}
}

if ((start==1 && shift==1) || start==-1) {
A_t3_1=A_t3;
B_t3_1=B_t3;
e1x=e1;
e2x=e2;
e3x=e3;
e4x=e4;
e5x=e5;
e6x=e6;
}

shift--;
}
}

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字(絵文字)


forex tester2 販売
Forex Tester 2の購入はこちらから。
カレンダー
09 2017/10 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
カテゴリー
フリーエリア



最新記事
最新CM
[09/04 Tyroneket]
[08/24 名無しのリーク]
[06/17 名無しのリーク]
[04/30 kob]
[04/29 TimhyTevy]
[04/16 toko]
[01/10 vzgwwzhisz]
[01/09 よしあき]
[12/09 pcvrhhtbnc]
[12/03 Arofukoe]
最新TB
RSS
ブログ内検索
アーカイブ
最古記事
プロフィール
HN:
fx練習生
年齢:
42
性別:
男性
誕生日:
1975/04/03
職業:
夢は専業トレーダー
趣味:
fx
自己紹介:
fxの専業トレーダーになって経済的自由と時間的自由を手に入れたいです。
自分で売買ルールを作成してテストして自信をもってリアルトレードしたいです。
P R