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

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

スポンサーサイト

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

MaMaster ソースコード

MacdSmaのファンクションとインディケータが出来たので
ストラテジーをつくります

内容
1 Function MacdSma, Indecator MacdSma を使う
2 PriceChannel の上下ラインで逆指値


売買サイン:

エントリー可能条件
  フィルターはない

エントリー
  macdavgラインの傾きが下から上になったら買い
  macdavgラインの傾きが上から下になったら売り

手仕舞
  PriceChannelの上ラインで売りポジションの手仕舞(逆指値)
  PriceChannelの下ラインで買いポジションの手仕舞(逆指値)


感想:
パラメータによりますが、ストキャスよりはポジション保有期間が長く
大きく利益を得ることが出来ます
と言うことは大きく負けることもあります

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

using System;
using Broker.StrategyLanguage.Function;

namespace Broker.StrategyLanguage.Strategy
{
public class MaMaster : BaseStrategyAdvisor
{
private int m_fastlength = 12;

private int m_slowlength = 26;

private int m_macdlength = 9;

private Function.MacdSma m_macd1;

private Average m_average1;

private SeriesVar< Double> m_mymacd;

private double m_macdavg0;

private double m_macdavg1;

private double m_macdavg2;

private double m_macdud0;

private double m_macdud1;

private IMarketOrder m_Order0;

private IMarketOrder m_Order1;

private IPriceOrder m_Order0_SL;

private IPriceOrder m_Order1_SL;


public MaMaster(object ctx) :
base(ctx) {}

[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 macdlength{
get { return m_macdlength; }
set { m_macdlength = value; }
}



private int m_length = 5;

private int m_displace;

private SeriesVar< Double> m_lowerband;

private SeriesVar< Double> m_upperband;

[Input]
public int length{
get { return m_length; }
set { m_length = value; }
}

[Input]
public int displace{
get { return m_displace; }
set { m_displace = value; }
}





protected override void Construct(){
m_macd1 = new Function.MacdSma(this);
m_average1 = new Average(this);
m_mymacd = new SeriesVar(this);


m_lowerband = new SeriesVar< Double>(this);
m_upperband = new SeriesVar< Double>(this);




m_Order0 = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "Buy", OrderAction.Buy));
m_Order1 =
OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, "Sell", OrderAction.SellShort));

m_Order0_SL =
OrdersFactory.CreateStop(new OrdersCreateParams(Lots.Default, "L_SL", OrderAction.Sell,
ExitInfo.FromAll));
m_Order1_SL =
OrdersFactory.CreateStop(new OrdersCreateParams(Lots.Default, "S_SL", OrderAction.BuyToCover,
ExitInfo.FromAll));

}

protected override void Initialize(){
m_macd1.price = Bars.Close;
m_macd1.fastlength = new SeriesExpression< Int32>(delegate { return fastlength; });
m_macd1.slowlength = new SeriesExpression< Int32>(delegate { return slowlength; });
m_average1.price = m_mymacd;
m_average1.length = new SeriesExpression< Int32>(delegate { return macdlength; });
m_mymacd.DefaultValue = 0;
m_macdavg0 = 0;
m_macdavg1 = 0;
m_macdavg2 = 0;
m_macdud0 = 0;
m_macdud1= 0;

m_lowerband.DefaultValue = 0;
m_upperband.DefaultValue = 0;


}

protected override void Destroy() {}

protected override void Execute(){
m_mymacd.Value = m_macd1[0];
m_macdavg0 = m_average1[0];
m_macdavg1 = m_average1[1];
m_macdavg2 = m_average1[2];
m_macdud0 = m_macdavg0 - m_macdavg1;
m_macdud1 = m_macdavg1 - m_macdavg2;

m_lowerband.Value = Functions.Lowest(Bars.Low, length, 1);
m_upperband.Value = Functions.Highest(Bars.High, length, 1);




if ((Functions.DoubleGreater(Bars.CurrentBar, 2))
&& (Functions.DoubleGreater(m_macdud0, 0))
&& (Functions.DoubleLessEquals(m_macdud1, 0))){
m_Order0.Generate();
}
if ((Functions.DoubleGreater(Bars.CurrentBar, 2))
&& (Functions.DoubleGreater(0,m_macdud0))
&& (Functions.DoubleLessEquals(0,m_macdud1))){
m_Order1.Generate();
}


if(StrategyInfo.MarketPosition > 0) {
m_Order0_SL.Generate( m_lowerband[0]);

}
else if(StrategyInfo.MarketPosition < 0){
m_Order1_SL.Generate( m_upperband[0]);

}

}
}
}



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

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

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

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

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

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

[他の自動売買サイトを探す]
人気blogランキング





[相場の流れは]
FX ポータル
陳さん  ユーロのソブリン危機は政治問題
西原さん 中期のユーロ安
松田さん ユーロ円の行方
吉田さん 米金利とユーロドル
今井さん 今年の予想 資源国通貨堅調 ユーロ売り圧力 ドルは世界経済しだい

スポンサーサイト

コメント

私もテスト運用開始しました^^

なんとかシステムらしきものが出来たのですが、24時間稼動でパソコンが故障するのが怖くて・・・
結局VPSを借りて、1月11日からテスト運用を開始しました。
VPSは、お名前.comです。特に問題なく稼動してます。

作ったシステムはSMAだけの単純なトレンドフォロー型で、Market Order(成行注文)をした後にFunctions.EntryPrice(this)を元に、
IPriceOrder CreateStop(OrdersCreateParams _params);
IPriceOrder CreateLimit(OrdersCreateParams _params);
で、LimitとStopを設定してます。

この方法でLimitとStopを設定すると、OCO注文になるようですね。これで土日にFXCMと通信が途絶えても安心なのですが、手動決済したい時は注意が必要です。
手動決済する時には、まずTSでLimitとStopのOCO注文を取り消した後に、保有ポジションを手動決済しましょう。
もしOCO注文を取り消さなかったら、手動決済した瞬間にまたポジションを買ってしまいます。
・・・私は一度、やっちゃいました(ノ◇≦。)

作ったシステムは1000通貨単位で運用していますが、今のところ調子は良さそうです。

それでは、お互い頑張りましょうっ!
また汚しに来ます(^^)

  • 2011/01/16(日) 16:18:58 |
  • URL |
  • ま~ #K8Rmk27c
  • [ 編集]

Re: 私もテスト運用開始しました^^

ま~さん

貴重な情報をありがとうございます

最近私も指値で手仕舞する方法が必要かなと思い始めました

  • 2011/01/20(木) 19:33:21 |
  • URL |
  • bingodog #-
  • [ 編集]

コメントの投稿


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

トラックバック

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

FC2Ad

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