FX取引ルール確立のために

取引方針が定まらぬ臆病者の外国為替証拠金取引の行方。 取引ルールの柱にテクニカルな売買サインを導入中。システム開発状況を全て公開。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フィルターを変更したソースコード

マルチタイムフレームのストラテジーのフィルターを変更したソースコードを掲載します

この変更でエントリー数はかなり増えています

ただし、バックテストの内容を検証すると

フィルターが正しく動作していないところが有ります

私の間違いなのか、バグなのか????

****************************

using System;
using Broker.StrategyLanguage.Function;
namespace Broker.StrategyLanguage.Strategy
{
public class MultiTimeFrameEMACrossover : BaseStrategyAdvisor
{
private ISeries< Double> m_price;
private ISeries< Double> m_price2;
private int m_fastlength = 8;
private int m_slowlength = 89;
private int m_fastlength2 = 13;
private int m_slowlength2 = 144;
private XAverage m_average1;
private XAverage m_average2;
private XAverage m_average3;
private XAverage m_average4;
private SeriesVar< Double> m_fastavg;
private SeriesVar< Double> m_slowavg;
private SeriesVar< Double> m_fastavg2;
private SeriesVar< Double> m_slowavg2;
private bool longertflong;
private bool longertfshort;
private bool shortertflong;
private bool shortertfshort;
private IMarketOrder m_Order0;
private IMarketOrder m_Order1;
private IMarketOrder m_Order2;
private IMarketOrder m_Order3;
public MultiTimeFrameEMACrossover(object ctx) :
base(ctx) {}
private ISeries< Double> price{
get { return m_price; }
}
private ISeries< Double> price2{
get { return m_price2; }
}
[Input]
public int fastlength{
get { return m_fastlength; }
set { m_fastlength = value; }
}
[Input]
public int slowlength{
get { return m_slowlength; }
set { m_slowlength = value; }
}
[Input]
public int fastlength2{
get { return m_fastlength2; }
set { m_fastlength2 = value; }
}
[Input]
public int slowlength2{
get { return m_slowlength2; }
set { m_slowlength2 = value; }
}
protected override void Construct(){
m_average1 = new XAverage(this);
m_average2 = new XAverage(this);
m_average3 = new XAverage(this);
m_average4 = new XAverage(this);
m_fastavg = new SeriesVar< Double>(this);
m_slowavg = new SeriesVar< Double>(this);
m_fastavg2 = new SeriesVar< Double>(this);
m_slowavg2 = new SeriesVar< Double>(this);
m_Order0 =
OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "EMALong", OrderAction.Buy));
m_Order1 =
OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "EMAShort",
OrderAction.SellShort));
m_Order2 = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "EMALongClose", OrderAction.Sell));
m_Order3 = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "EMAShortClose", OrderAction.BuyToCover));
}
protected override void Initialize(){
m_price = Bars.Close;
m_price2 = BarsOfData(2).Close;
m_average1.price = price;
m_average1.length = new SeriesExpression< Int32>(delegate { return fastlength; });
m_average2.price = price;
m_average2.length = new SeriesExpression< Int32>(delegate { return slowlength; });
m_average3.price = price2;
m_average3.length = new SeriesExpression< Int32>(delegate { return fastlength2; });
m_average4.price = price2;
m_average4.length = new SeriesExpression< Int32>(delegate { return slowlength2; });
m_fastavg.DefaultValue = 0;
m_slowavg.DefaultValue = 0;
m_fastavg2.DefaultValue = 0;
m_slowavg2.DefaultValue = 0;
}
protected override void Destroy() {}
protected override void Execute(){
m_fastavg.Value = m_average1[0];
m_slowavg.Value = m_average2[0];
m_fastavg2.Value = m_average3[0];
m_slowavg2.Value = m_average4[0];

if((Functions.DoubleGreater(BarsOfData(2).CurrentBar, 1))
&& (Functions.DoubleGreater(Bars.CurrentBar, 1))){

if (Functions.DoubleGreater(m_fastavg2[0], m_slowavg2[0])){
//ここがフィルターです
//CrossesOverをDoubleGreaterに変更しています


if (Functions.CrossesOver(this, m_fastavg, m_slowavg)){
m_Order0.Generate();
}
}

if (Functions.DoubleLess(m_fastavg2[0], m_slowavg2[0])){
//ここがフィルターです
//CrossesUnderをDoubleLessに変更しています



if (Functions.CrossesUnder(this, m_fastavg, m_slowavg)){
m_Order1.Generate();
}
}

if(StrategyInfo.MarketPosition > 0){
if (Functions.CrossesUnder(this, m_fastavg, m_slowavg)){
m_Order2.Generate();
}
}

if(StrategyInfo.MarketPosition < 0){
if (Functions.CrossesOver(this, m_fastavg, m_slowavg)){
m_Order3.Generate();
}
}
}
}
}
}


[当サイトで使っている自動売買システム]

FXCMはMT4よりも優れていると言っています

中身の分からないストラテジーがいやで
自分でストラテジーを作って運営しています

初めての方はこちらから
ストラテジートレーダー超入門 自動売買プログラミング編

Strategy Trader 紹介ビデオ 取扱説明 関連サイト

ストラテジートレーダー概要

ストラテジートレーダーβ版利用ガイド

日本語フォーラム
ST日本語フォーラム

[他の自動売買サイトを探す]

人気blogランキング






[相場の流れは]
FX ポータル
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://fxrun.blog55.fc2.com/tb.php/1812-ab200d8a
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。