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

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

スポンサーサイト

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

Winブレイカ―(エコトレFX) ソースコード

エコトレFX、WinBreakerのソースコードです

概要:

ある期間の高値安値ライン間でできるレンジ幅が(その平均値*倍数)よりも小さい時にエントリー可能になります

終値価格が指数移動平均より上で高値ラインを上回った時に買いエントリーします
終値価格が指数移動平均より下で安値ラインを下回った時に売りエントリーします

利益確定は、利益確定価格で行います

また、安値ラインを下回った時に買いポジションの手仕舞またはドテン
高値ラインを上回った時に売りポジションの手仕舞またはドテンします

入力項目:

EMAlength  指数移動平均の期間
Rlength   レンジ幅の期間
avglength  レンジ幅平均の期間
multi    レンジ幅平均の倍数(少数点以下あり)
Profit_Target_Amount  利益確定価格(円)

備考:

multi(レンジ幅平均の倍数)を大きくするとレンジ幅に関係なくエントリーするようになります

EMAlength(指数移動平均の期間)を小さくすると指数移動平均に関係なくエントリーするようになります

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

using System;
using System.Drawing;
using Broker.StrategyLanguage.Function.BuiltIn;
using Fx2GoCommon;

namespace Broker.StrategyLanguage.Strategy {
public class WinBreaker : BaseStrategyAdvisor {

private ISeries< Double > m_price;

private int m_emalength = 20;

private XAverage m_xaverage1;

private SeriesVar< Double > m_avgexp;

private ISeries< Double > price{
get { return m_price; }
}

public WinBreaker(object _ctx):base(_ctx){}

[Input]
public int EMAlength{
get { return m_emalength; }
set { m_emalength = value; }
}

private int m_Rlength = 20;

private int m_avglength = 40;

private double m_multi = 0.8;

private double m_avgrange;

private SeriesVar< Double > m_lowerband;

private SeriesVar< Double > m_upperband;

private SeriesVar< Double > m_range;

private double m_Profit_Target_Amount = 600;

private IMarketOrder m_OrderBuy;

private IMarketOrder m_OrderSell;

private IMarketOrder m_OrderExlong;

private IMarketOrder m_OrderExshort;

[Input]
public int Rlength{
get { return m_Rlength; }
set { m_Rlength = value; }
}
[Input]
public int avglength{
get { return m_avglength; }
set { m_avglength = value; }
}
[Input]
public double multi{
get { return m_multi; }
set { m_multi = value; }
}
[Input]
public double Profit_Target_Amount{
get { return m_Profit_Target_Amount; }
set { m_Profit_Target_Amount = value; }
}

protected override void Construct() {

m_xaverage1 = new XAverage(this);
m_avgexp = new SeriesVar< Double>(this);
m_lowerband = new SeriesVar< Double>(this);
m_upperband = new SeriesVar< Double>(this);
m_range = new SeriesVar< Double>(this);

m_OrderBuy = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "BUY", OrderAction.Buy));
m_OrderSell = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "SELL", OrderAction.SellShort));
m_OrderExlong = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "EXL", OrderAction.Sell));
m_OrderExshort = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "EXS", OrderAction.BuyToCover));
}

protected override void Initialize() {

m_price = Bars.Close;
m_xaverage1.price = price;
m_xaverage1.length = new SeriesExpression< Int32 >(delegate { return EMAlength; });
m_avgexp.DefaultValue = 0;
m_lowerband.DefaultValue = 0;
m_upperband.DefaultValue = 0;
m_range.DefaultValue = 0;
m_avgrange = 0;
}

protected override void Execute(){

m_avgexp.Value = m_xaverage1[0];
m_lowerband.Value = Functions.Lowest(Bars.Low, Rlength, 1);
m_upperband.Value = Functions.Highest(Bars.High, Rlength, 1);
m_range.Value = m_upperband.Value - m_lowerband.Value ;
m_avgrange = Functions.Average(m_range, avglength);

if (Functions.DoubleGreater(Bars.CurrentBar, 2)){

if ((StrategyInfo.MarketPosition == 1)&
(Functions.CrossesUnder(this, Bars.Close, m_lowerband))){
m_OrderExlong.Generate();
}
if ((StrategyInfo.MarketPosition == -1)&
(Functions.CrossesOver(this, Bars.Close, m_upperband))){
m_OrderExshort.Generate();
}

if (Functions.DoubleGreater(m_avgrange*m_multi, m_range[0])){

if ((Functions.CrossesOver(this, Bars.Close, m_upperband))&
(Functions.DoubleGreater(Bars.Close[0],m_avgexp[0]))){
m_OrderBuy.Generate();
}

if ((Functions.CrossesUnder(this, Bars.Close, m_lowerband))&
(Functions.DoubleGreater(m_avgexp[0], Bars.Close[0]))){
m_OrderSell.Generate();
}
}

if (Functions.DoubleGreater(Profit_Target_Amount, 0)){
GenerateProfitTarget(Profit_Target_Amount);
}
}
}
}
}


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

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

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

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

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

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

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

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

人気blogランキング






[相場の流れは]
FX ポータル
中東情勢が焦点
陳さん  有事のドル買い不発の理由
西原さん 逃避通貨はスイス
今井さん 中東情勢で円安が反転 欧州通貨は乱高下?
松田さん ユーロ円のボックスは何時か放れる
吉田さん 量的緩和とドル円

スポンサーサイト

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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