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

ちなみに、Javaプログラマー科を卒業して ・・・

作っていたプログラムの一部です。

どうにかロウソク足のみの単純明快なロジックを作りたくて・・・

試行錯誤していますた。

トレイリングストップ機能をコメントアウトさせているのは・・・

バックテストで ・・・ 思った様なトレイリングストップが ・・・

かかっていなかったからでふ。多分プログラムミスでしょう (-"-)

色々いじってて、途中だったため、実際はコメントアウトしてないなぁ。

MetaTrader のMQL4プログラム言語です。

EA (エキスパートアドバイザー)と言われる自動取引のプログラムになりまふ。

どんなモノか ・・・ 参考までにご紹介。

このロジックで実用するのは自殺行為でしょう ^_^;

卒業してからは、毎日プログラムを作成しては ・・・

バックテストを行う日々を過ごしていますた 。。。

1ヶ月たとうとしたある日 ・・・

いいかげんに働け!と言われ就職 。。。




//+------------------------------------------------------------------+
//| ∞_S_C.mq4 |
//| Copyright (c) 2009/04/10, ∞ |
//| †使用条件 // USD_JPY // Candle M15 |
//+------------------------------------------------------------------+

#property copyright "Copyright (c) 2009, ∞"
#property link "†††††††††††††††††††"

/* 条件 ***********************************************
スプレッドがせまいこと
最小 USD_JPY / EUR_USD
次点 EUR_JPY / AUD_USD
ボラティリティがあること
大 GBP_JPY / GBP_USD / EUR_JPY
小 USD_JPY / GBP_JPY / AUD_USD
EUR_JPY が条件を両方満たす
ボラ大通貨ペア Profit 10Pips / StopLoss 25Pips
ボラ小通貨ペア Profit 20Pips / StopLoss 40Pips
******************************************************/

//マジックナンバー * 取引ナンバー OrderModify 関数で使用中*
#define MAGIC 777

//パラメーターの変数設定
extern int FastMA_Period = 30; // 短期移動平均の期間
extern int SlowMA_Period = 60; // 長期移動平均の期間
extern double Lots = 0.1; // 売買ロット数
extern int Slippage = 4; // スリッページ
extern int Profit=50; // リミット値
extern int StopLoss=20; // ストップロス値
extern double Threshold=0.30; // 移動平均乖離率
extern int MAPeriod=30; // 移動平均線の期間
extern int TrailingStop = 30; // トレイリングストップ値
extern int Hpips = 6; // ロウソクのpips差の判定 High
extern int Lpips =3; // ロウソクのpips差の判定 Low
extern int Epips =1; // ロウソクのpips差の判定 Etc

//+------------------------------------------------------------------+
//| ポジションを決済する |
//+------------------------------------------------------------------+

void ClosePositions()
{

for( int i=0; i {
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
if(OrderMagicNumber() != MAGIC || OrderSymbol() != Symbol()) continue;
//オーダータイプのチェック
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White);
break;
}
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White);
break;
}
}
}

/* コメントアウト中
int i, ticket, err;
// ボジション保有の判定
ticket = -1;
for (i = 0; i < OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true) {
if(OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
ticket = OrderTicket();
break;
}
}
}
}
*/

//+------------------------------------------------------------------+
//| スタート関数 |
//+------------------------------------------------------------------+

int start()
{
//バーの始値でトレード可能かチェック
if(Volume[0]>1 || IsTradeAllowed()==false) return(0);

//移動平均の計算
double FastMA1 = iMA(NULL,0,FastMA_Period,0,MODE_SMA,PRICE_CLOSE,1);
double SlowMA1 = iMA(NULL,0,SlowMA_Period,0,MODE_SMA,PRICE_CLOSE,1);
double FastMA2 = iMA(NULL,0,FastMA_Period,0,MODE_SMA,PRICE_CLOSE,2);
double SlowMA2 = iMA(NULL,0,SlowMA_Period,0,MODE_SMA,PRICE_CLOSE,2);

// トレイリング機能でオーダー数を検索 コメントアウトで取引は複数となる
if( OrdersTotal() == 0){

// カスタムインディケータを minus と plus に代入 * 現在直接EAに使用なし
double minus = iCustom(Symbol(), NULL, " CustomIndicatorYNakashima", Threshold, MAPeriod, 2, 1);
double plus = iCustom(Symbol(), NULL, " CustomIndicatorYNakashima", Threshold, MAPeriod, 1, 1);

////////////////////////////// ロングエントリーメイン条件 //////////////////////////////

// 01 ロングエントリー ********** 陽3前 → 陰2前 → 陽1前 ********** 精度を上げるなら条件に陽4前ローソクの条件を加える **********

// 3本前の陽ローソクの実体は7Pips以上
if (MathAbs(Open[3]) + (Hpips * Point) <= MathAbs(Close[3]) &&
// 2本前の陰ローソクの実体は3Pips以上
MathAbs(Open[2]) + (Lpips * Point) >= MathAbs(Close[2]) &&
// 1本前のローソクは陽ロウソク
MathAbs(Open[1]) + (Epips * Point) <= MathAbs(Close[1]) &&
// 1本前の陽ローソクの終値が2本前の陰ローソクの始値を超える
MathAbs(Close[1]) >= MathAbs(Open[2]) + (Epips * Point)) {
// 3本前の陽ローソク始値を2本前の陰ローソク終値が超えないなら尚良い
// (MathAbs(Open[3] - Close[2]) >= (1 * Point))) {

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);

// 02 ロングエントリー ********** 陽4前 → 陰3前 → 陰2前 → 陽1前 (01 応用)********** 精度を上げるなら条件に陽5前ローソクの条件を加える **********
}else if (Open[4] < Close[4] && Open[3] > Close[3] && Open[2] > Close[2] && Open[1] < Close[1] &&
// 4本前のローソクの実体に2本前のローソクの高値と安値が包まれる
Open[4] > Low[2] && Close[4] > High[2] &&
// 1本前の陽ローソクの終値が3本前の陰ローソクの始値を超える
Close[1] < Open[3] &&
// 4本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips *未実装
(MathAbs(Open[4] - Close[4]) >= (7 * Point)) &&
// 3本前のローソクの実体は3Pips以上 *未実装
(MathAbs(Open[3] - Close[3]) >= (7 * Point))) {
// 4本前の陽ローソク始値を3本前の陰ローソク終値が越えていないなら尚良い
// Open[4] >= Close[3] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);

// 03 ロングエントリー ********** 陽5前 → 陰4前 → 陰3前 → 陰2前 → 陽1前 (01 応用)********** 精度を上げるなら条件に陽6前ローソクの条件を加える **********
}else if (Open[5] < Close[5] && Open[4] > Close[4] && Open[3] > Close[3] && Open[2] > Close[2] && Open[1] < Close[1] &&
// 5本前のローソクの実体に3本前のローソクの高値と安値が包まれる
Open[5] > Low[3] && Close[5] > High[3] &&
// 5本前のローソクの実体に2本前のローソクの高値と安値が包まれる
Open[3] > Low[2] && Close[5] > High[2] &&
// 1本前の陽ローソクの終値が4本前の陰ローソクの始値を超える
Close[1] < Open[4] &&
// 5本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips
(MathAbs(Open[5] - Close[5]) >= (7 * Point)) &&
// 4本前のローソクの実体は3Pips以上 *未実装
(MathAbs(Open[4] - Close[4]) >= (3 * Point))) {
// 5本前の陽ローソク始値を4本前の陰ローソク終値が越えていないなら尚良い
// Open[5] >= Close[4] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);

// 04 ロングエントリー ********** 陽5前 → 陰4前 → 陰3前 → 陽2前 → 陽1前 (01 応用)********** 精度を上げるなら条件に陽6前ローソクの条件を加える **********
}else if (Open[5] < Close[5] && Open[4] > Close[4] && Open[3] > Close[3] && Open[2] < Close[2] && Open[1] < Close[1] &&
// 5本前のローソクの実体に3本前のローソクの高値と安値が包まれる
Open[5] > Low[3] && Close[5] > High[3] &&
// 5本前のローソクの実体に2本前のローソクの高値と安値が包まれる
Open[3] > Low[2] && Close[5] > High[2] &&
// 1本前の陽ローソクの終値が4本前の陰ローソクの始値を超える
Close[1] < Open[4] &&
// 5本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips
(MathAbs(Open[5] - Close[5]) >= (7 * Point)) &&
// 4本前のローソクの実体は3Pips以上 *未実装
(MathAbs(Open[4] - Close[4]) >= (7 * Point))) {
// 5本前の陽ローソク始値を4本前の陰ローソク終値が越えていないなら尚良い
// Open[5] >= Close[4] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);

// 05 ロングエントリー ********** 陽7前 → 陰6前 → 陰5前 → 陰4前 → 陽3前 → 陽2前 → 陽1前 (01 応用)********** 精度を上げるなら条件に陽8前ローソクの条件を加える **********
}else if (Open[7] < Close[7] && Open[6] > Close[6] && Open[5] > Close[5] && Open[4] > Close[4] && Open[3] < Close[3] && Open[2] < Close[2] && Open[1] < Close[1] &&
// 7本前のローソクの実体に5本前のローソクの高値と安値が包まれる
Open[7] > Low[5] && Close[7] > High[5] &&
// 7本前のローソクの実体に4本前のローソクの高値と安値が包まれる
Open[7] > Low[4] && Close[7] > High[4] &&
// 7本前のローソクの実体に3本前のローソクの高値と安値が包まれる
Open[7] > Low[3] && Close[7] > High[3] &&
// 7本前のローソクの実体に2本前のローソクの高値と安値が包まれる
Open[7] > Low[2] && Close[7] > High[2] &&
// 1本前の陽ローソクの終値が6本前の陰ローソクの始値を超える
Close[1] < Open[6] &&
// 7本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips
(MathAbs(Open[7] - Close[7]) >= (7 * Point)) &&
// 6本前のローソクの実体は3Pips以上 *未実装
(MathAbs(Open[6] - Close[6]) >= (3 * Point))) {
// 7本前の陽ローソク始値を6本前の陰ローソク終値が越えていないなら尚良い
// Open[7] >= Close[6] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);



// 06 ロングエントリー ********** 3本連続の陽ロウソク 陽 陽 陽 **********
}else if (Open[3] < Close[3] && Open[2] < Close[2] && Open[1] < Close[1] &&
// 1本前のロウソクの実体が2本前のロウソクの実体以上になる * 1Pips以上
(MathAbs(Open[1] - Close[1]) + (1 * Point) >= MathAbs(Open[2] - Close[2]))){

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);

// 07 ロングエントリー ********** 06の途中で1本育たない陽ロウソクがある場合 陽 陽 陽 陽(06 応用)**********
}else if (Open[4] < Close[4] && Open[3] < Close[3] && Open[2] < Close[2] && Open[1] < Close[1] &&
// 1本前のローソクの実体が3本前のローソクの実体以上になる * 1Pips以上
(MathAbs(Open[1] - Close[1]) + (1 * Point) >= MathAbs(Open[3] - Close[3]))){

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);

// 08 ロングエントリー ********** 06の途中で2本育たない陽ロウソクがある場合 陽 陽 陽 陽 陽(06 応用)**********
}else if (Open[5] < Close[5] && Open[4] < Close[4] && Open[3] < Close[3] && Open[2] < Close[2] && Open[1] < Close[1] &&
// 1本前のローソクの実体が4本前のローソクの実体以上になる * 1Pips以上
(MathAbs(Open[1] - Close[1]) + (1 * Point) >= MathAbs(Open[4] - Close[4]))){

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);

// 09 ロングエントリー ********** 06の途中で1本育たない陰ロウソクが混じった場合 陽 陽 陰 陽(06 応用)**********
}else if (Open[4] < Close[4] && Open[3] < Close[3] && Open[2] > Close[2] && Open[1] < Close[1] &&
// 3本前の陽ロウソクの実体が2本前の陰ローソクの実体を包み込む
Open[3] > Low[2] && Close[3] > High[2] &&
// 1本前のローソクの実体が3本前のローソクの実体以上になる * 1 Pips以上
(MathAbs(Open[1] - Close[1]) + (1 * Point) >= MathAbs(Open[3] - Close[3]))){

ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,
Bid+StopLoss*Point, Bid-Profit*Point, NULL, MAGIC, 0, Red);
return(0);

////////////////////////////// ショートエントリーメイン条件 //////////////////////////////


// 10 ショートエントリー ********** 陰3前 → 陽2前 → 陰1前 ********** 精度を上げるなら条件に陰4前ローソクの条件を加える **********
}else if (Open[3] > Close[3] && Open[2] < Close[2] && Open[1] > Close[1] &&
// 1本前の陰ローソクの終値が2本前の陽ローソクの始値を下回る
Close[1] < Open[2] &&
// 3本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips
(MathAbs(Open[3] - Close[3]) >= (7 * Point)) &&
// 2本前のローソクの実体は3Pips以上
(MathAbs(Open[2] - Close[2]) >= (3 * Point))) {
// 3本前の陰ローソク始値を2本前の陽ローソク終値が超えないなら尚良い
// Open[3] >= Close[2] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

// 11 ショートエントリー ********** 陰4前 → 陽3前 → 陽2前 → 陰1前 (10 応用)********** 精度を上げるなら条件に陰5前ローソクの条件を加える **********
}else if (Open[4] > Close[4] && Open[3] < Close[3] && Open[2] < Close[2] && Open[1] > Close[1] &&
// 4本前のローソクの実体に2本前のローソクの高値と安値が包まれる
Open[4] > High[2] && Close[4] > Low[2] &&
// 1本前の陰ローソクの終値が3本前の陽ローソクの始値を下回る
Close[1] < Open[3] &&
// 4本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips
(MathAbs(Open[4] - Close[4]) >= (7 * Point)) &&
// 3本前のローソクの実体は3Pips以上
(MathAbs(Open[3] - Close[3]) >= (3 * Point))) {
// 4本前の陰ローソク始値を3本前の陽ローソク終値が超えないなら尚良い
// Open[4] >= Close[3] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

// 12 ショートエントリー ********** 陰5前 → 陽4前 → 陽3前 → 陽2前 → 陰1前 (10 応用)********** 精度を上げるなら条件に陰6前ローソクの条件を加える **********
}else if (Open[5] > Close[5] && Open[4] < Close[4] && Open[3] < Close[3] && Open[2] < Close[2] && Open[1] > Close[1] &&
// 5本前のローソクの実体に3本前のローソクの高値と安値が包まれる
Open[5] > High[3] && Close[5] > Low[3] &&
// 5本前のローソクの実体に2本前のローソクの高値と安値が包まれる
Open[3] > High[2] && Close[5] > Low[2] &&
// 1本前の陰ローソクの終値が4本前の陽ローソクの始値を下回る
Close[1] < Open[4] &&
// 5本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips
(MathAbs(Open[5] - Close[5]) >= (7 * Point)) &&
// 4本前のローソクの実体は3Pips以上
(MathAbs(Open[4] - Close[4]) >= (3 * Point))) {
// 5本前の陰ローソク始値を4本前の陽ローソク終値が超えないなら尚良い
// Open[5] >= Close[4] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

// 13 ショートエントリー ********** 陰5前 → 陽4前 → 陽3前 → 陰2前 → 陰1前 (10 応用)********** 精度を上げるなら条件に陰6前ローソクの条件を加える **********
}else if (Open[5] > Close[5] && Open[4] < Close[4] && Open[3] < Close[3] && Open[2] > Close[2] && Open[1] > Close[1] &&
// 5本前のローソクの実体に3本前のローソクの高値と安値が包まれる
Open[5] > High[3] && Close[5] > Low[3] &&
// 5本前のローソクの実体に2本前のローソクの高値と安値が包まれる
Open[3] > High[2] && Close[5] > Low[2] &&
// 1本前の陰ローソクの終値が4本前の陽ローソクの始値を下回る
Close[1] < Open[4] &&
// 5本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips
(MathAbs(Open[5] - Close[5]) >= (7 * Point)) &&
// 4本前のローソクの実体は3Pips以上
(MathAbs(Open[4] - Close[4]) >= (3 * Point))) {
// 5本前の陰ローソク始値を4本前の陽ローソク終値が超えないなら尚良い
// Open[5] >= Close[4] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

// 14 ショートエントリー ********** 陰7前 → 陽6前 → 陽5前 → 陽4前 → 陰3前 → 陰2前 → 陰1前 (10 応用)********** 精度を上げるなら条件に陰8前ローソクの条件を加える **********
}else if (Open[7] > Close[7] && Open[6] < Close[6] && Open[5] < Close[5] && Open[4] < Close[4] && Open[3] > Close[3] && Open[2] > Close[2] && Open[1] > Close[1] &&
// 7本前のローソクの実体に5本前のローソクの高値と安値が包まれる
Open[7] > High[5] && Close[7] > Low[5] &&
// 7本前のローソクの実体に4本前のローソクの高値と安値が包まれる
Open[7] > High[4] && Close[7] > Low[4] &&
// 7本前のローソクの実体に3本前のローソクの高値と安値が包まれる
Open[7] > High[3] && Close[7] > Low[3] &&
// 7本前のローソクの実体に2本前のローソクの高値と安値が包まれる
Open[7] > High[2] && Close[7] > Low[2] &&
// 1本前の陰ローソクの終値が6本前の陰ローソクの始値を下回る
Close[1] < Open[6] &&
// 7本前のローソクの実体は7Pips以上 * ボラ大通貨ペアなら10Pips
(MathAbs(Open[7] - Close[7]) >= (7 * Point)) &&
// 6本前のローソクの実体は3Pips以上
(MathAbs(Open[6] - Close[6]) >= (3 * Point))) {
// 7本前の陰ローソク始値を6本前の陽ローソク終値が超えないなら尚良い
// Open[7] >= Close[6] ならよりベター *未実装

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

// 15 ショートエントリー ********** 3本連続の陰ロウソク 陰 陰 陰 **********
}else if (Open[3] > Close[3] && Open[2] > Close[2] && Open[1] > Close[1] &&
// 1本前のロウソクの実体が2本前のロウソクの実体以上になる * 1Pips以上
(MathAbs(Open[1] - Close[1]) + (1 * Point) >= MathAbs(Open[2] - Close[2]))){

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

// 16 ショートエントリー ********** 15の途中で1本育たない陰ロウソクがある場合 陰 陰 陰 陰(15 応用)**********
}else if (Open[4] > Close[4] && Open[3] > Close[3] && Open[2] > Close[2] && Open[1] > Close[1] &&
// 1本前のローソクの実体が3本前のローソクの実体以上になる * 1Pips以上
(MathAbs(Open[1] - Close[1]) + (1 * Point) >= MathAbs(Open[3] - Close[3]))){

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

// 17 ショートエントリー ********** 15の途中で2本育たない陰ロウソクがある場合 陰 陰 陰 陰 陰(15 応用)**********
}else if (Open[5] > Close[5] && Open[4] > Close[4] && Open[3] > Close[3] && Open[2] > Close[2] && Open[1] > Close[1] &&
// 1本前のローソクの実体が4本前のローソクの実体以上になる * 1Pips以上
(MathAbs(Open[1] - Close[1]) + (1 * Point) >= MathAbs(Open[4] - Close[4]))){

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

// 18 ショートエントリー ********** 15の途中で1本育たない陽ロウソクが混じった場合 陰 陰 陽 陰(15 応用)**********
}else if (Open[4] > Close[4] && Open[3] > Close[3] && Open[2] < Close[2] && Open[1] > Close[1] &&
// 3本前の陰ロウソクの実体が2本前の陽ローソクの実体を包み込む
Open[3] > High[2] && Close[3] > Low[2] &&
// 1本前のローソクの実体が3本前のローソクの実体以上になる * 1Pips以上
(MathAbs(Open[1] - Close[1]) + (1 * Point) >= MathAbs(Open[3] - Close[3]))){

ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,
Ask-StopLoss*Point, Ask+Profit*Point, NULL, MAGIC, 0, Blue);
return(0);

}
}

/*
// トレイリングストップ機能 * コメントアウト中 *

for(int i=0; i < OrdersTotal(); i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
if(OrderMagicNumber() != MAGIC || OrderSymbol() != Symbol()) continue;
if(OrderType() == OP_BUY){
if(Bid-OrderOpenPrice() >TrailingStop*Point && OrderStopLoss() < Bid-TrailingStop*Point){
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
break;
}
if(OrderType() == OP_SELL){
if(OrderOpenPrice()-Ask > TrailingStop*Point && OrderStopLoss() > Ask+TrailingStop*Point){
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
break;
}
}
*/

//トレイリングストップ機能 * 利益確定で追いかける機能追加 *** メイン *** コメントアウト中
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) {
if(OrderType()==OP_BUY) {
if(TrailingStop>0) {
if(Bid-OrderOpenPrice()>Point*TrailingStop) {
if(OrderStopLoss() OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Magenta);
return(0);
}
}
}
} else {
if(TrailingStop>0) {
if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) {
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) {
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Magenta);
return(0);
}
}
}
}
}

//----
return(0);
}
//+-------------------------------------------------------------------------------------------------------------------------------------------------+

h765541453.gif

不安定です ・・・ (-"-)

2008.9.1~2008.10.1 *バックテスト期間 / 最新データはインポートしてませんので。

Profit factor 0.96


【2009/09/16 21:14】 | FX
トラックバック(0) |
コメント
この記事へのコメント
コメントを投稿
URL:

Pass:
秘密: 管理者にだけ表示を許可
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。