//+---------------------------------------------------------------+
// After supersignal stoc.cross-EA vol.1(改).mq4 |
// スーパーシグナル発生後一定期間内にストキャスレベルクロスが発生 |
// したらエントリー |
//+---------------------------------------------------------------+
//#property copyright “non”
//#property link “non”

//マイライブラリー
#include <MyLib.mqh>

//マジックナンバー
#define MAGIC 32050957
#define COMMENT “After supersignal stoc.cross-EA vol.1”

//パラメーター
extern int KPeriod=5;
extern int DPeriod=3;
extern int Slowing=3;
extern int MA_Method = 0; // SMA 0, EMA 1, SMMA 2, LWMA 3
extern int PriceField = 0; // Low/High 0, Close/Close 1
extern double level1=75; //ストキャスのlevel1
extern double level2=65; //ストキャスのlevel2
extern double level3=35; //ストキャスのlevel3
extern double level4=25; //ストキャスのlevel4
extern int SignalGap = 10;
extern int y = 5; //スーパーシグナル後の有効足本数
extern double Lots = 0.1; //ロット数(0.1で1万通貨)
extern int Slippage = 3; //スリッページ値
extern int StopLoss = 80; //ストップロス値
extern double TrailingStop = 150; //trailingstop値(100で10pips)(0で解除)
extern double TakeProfit = 1500; //利確値(100で10pips)

//エントリー関数
int EntrySignal(int magic)
{
//オープンポジションの計算
double pos = MyCurrentOrders(MY_OPENPOS, magic);
//ストキャスのチェック
int m;
double fastMAnow, slowMAnow, fastMAprevious, slowMAprevious;

{
fastMAnow = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_MAIN,m);
fastMAprevious = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_MAIN, m+1);
slowMAnow = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_SIGNAL, m);
slowMAprevious = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_SIGNAL, m+1);
}

//買いシグナル
int ret = 0;
if ((pos==0 ) && (fastMAnow > level4) && (fastMAprevious < level4))
ret = 1;

//売りシグナル
if ((pos==0 ) && (fastMAnow < level1) && (fastMAprevious > level1))
ret = -1;
return(ret);
}

//フィルター関数
int FilterSignal(int signal)
{
for(int i=0; i<y; i++)
{
int k, hhb, llb;
int dist=24;
{
hhb = iHighest(NULL,0,MODE_HIGH,dist,k-dist/2);
llb = iLowest(NULL,0,MODE_LOW,dist,k-dist/2);
}

int ret = signal;
//買いシグナル
if(signal > 0 && k==llb)break;
//売りシグナル
if(signal < 0 && k==hhb)break;
ret = 0;
}
return(ret);
}

//スタート関数
int start()
{
//エントリーシグナルの生成
int sig_entry = EntrySignal(MAGIC);

//エントリーのフィルター
sig_entry = FilterSignal(sig_entry);

//買い注文
if(sig_entry > 0)
//MyOrderClose(Slippage,MAGIC);
MyOrderSend(OP_BUY,Lots,Ask,Slippage,Ask-StopLoss *Point,Ask+TakeProfit*Point,COMMENT,MAGIC);

//売り注文
if(sig_entry < 0)
//MyOrderClose(Slippage,MAGIC);
MyOrderSend(OP_SELL,Lots,Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,COMMENT,MAGIC);
return(0);

// trailing stopへの利益基準での変更(買いポジション)
if(TrailingStop>0)
{
int cnt,total=OrdersTotal();
for(cnt = total-1; cnt >= 0; cnt--)
RefreshRates();
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
//if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==false) break;
//if(OrderSymbol()!=Symbol()) continue;
{
if(OrderType() == OP_BUY && Bid-OrderOpenPrice()>Point*TrailingStop && OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}

// trailing stopへの利益基準での変更(売りポジション)
{
if(OrderType() == OP_SELL && OrderOpenPrice()-Ask>Point*TrailingStop && OrderStopLoss()<Ask+Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}

コメント
一覧 画像
ファイル コメント オリジナル 容量 日時
最新の画像 もっと見る

After supersignal stoc.cross-EA vol.1(改)

統計
ディスク 0 B / 1500.0 MB ( 0 % )
ファイル 0 ファイル
ダウンロード 0 ダウンロード
レーティング 未指定(全年齢) [誤りを報告]

アップローダーを作ってみませんか?

このアップローダーは、uploader.jp の無料アップローダーレンタルサービスによって作成されています。簡単な無料会員登録を行っていただくだけで、スマートフォン対応の便利なアップローダーを無料でレンタルできます。費用は一切かかりませんので、この機会にぜひお試しください。

アップローダーをご利用の前に

必ず利用規約をご確認いただき、同意の上でご利用ください。同意されない場合は、誠に申し訳ありませんが、サービスの提供を続行することができませんので速やかに操作を中止してください。このアップローダーについて、ご質問などがありましたら、メールフォームよりご連絡ください。アップローダーの管理人が対応します。一週間以内に対応が確認できない場合は、こちらからご連絡ください。