FX最強ツール サイクル理論で稼ぎます!

サイクル理論でボトムを見極め、そこから自動売買を稼働させ、確実に利益を積み上げていきます。

投資&人体 研究所

FX サイクル理論 GBPAUD 自作EA稼働中~~から休止

こんにちは、兼業トレーダのタケシです。

 

本日は特にやることも無く、アパートでまったり中~~~です。

 

それでは為替にいきましょう。

 

週初めよりサインツールより、GBPAUDの売りサインが点灯しました。

週足レベルのサインなので、数週間はサインが点灯し続ける予定です。

1.74000割れまでいってくれるとワクワクです。

ただ、サインもすぐ消滅する位置なので、消滅=撤退の準備も万端です。

 

※19時点サイン消滅により休止 再稼働懇願中

 

f:id:kisamashiketa:20210223133208j:plain

GBPAUDの1分足チャートになります。

 

自作EAのプロフィールは(ごく単純ですが・・・)

 

基本設定はマーチンゲールにしました。ナンピン無しです。

 

エントリーはRSI=75を超えた時点で逆張りにしてみました。

直近ローロク足の確定にてです。

エントリーについてはこれからもっと利益が出そうな方法を考えていきたいと思います。

 

エグジットは1分足チャートを使用しているので10pips

損切りは15pipsに設定しました。

 

取引単位・ポジション数・マーチン率・スプレッド制限等の詳細項目は、その都度変更していきます。

 

//+---------------------------------------------------------------------+
// パラメーター設定
//+---------------------------------------------------------------------+

input string C0="---- Base Setting ----";
input int MAGIC = 0;
input int Slippage=3;
input int MaxSpread=50;


//取引ロット関連
input int MaxPosition=1;
input double BaseLots=0.05;
input int takeprofit=7;
input int stoploss=17;

//マーチンゲール
input int LotsAdjustPer=3;//最大マーチンゲール実施回数
input double LotsAdjustPer2=1.25;//マーチン倍率

//その他項目
double Lots;

input string C1="フィルター|RSIが買われすぎ売られすぎラインを超過(逆張り)";
int TimeScale1 = 0;
int Entry1 = 1;//1_直近確定の足、2_二本前、3_三本前
input int RSI1_period = 14; //RSI期間
input double RSI1_high = 75; //買われすぎライン
input double RSI1_low = 50; //売られすぎライン


//+---------------------------------------------------------------------+
// 一般関数
//+---------------------------------------------------------------------+

double AdjustPoint(string Currency)//ポイント調整
{
int Symbol_Digits=(int)MarketInfo(Currency,MODE_DIGITS);
double Calculated_Point=0;
if (Symbol_Digits==2 || Symbol_Digits==3)
{
Calculated_Point=0.01;
}
else if (Symbol_Digits==4 || Symbol_Digits==5)
{
Calculated_Point=0.0001;
}
else if (Symbol_Digits==1)
{
Calculated_Point=0.1;
}
else if (Symbol_Digits==0)
{
Calculated_Point=1;
}
return(Calculated_Point);
}

int AdjustSlippage(string Currency,int Slippage_pips )//スリッページ調整
{
int Calculated_Slippage=0;
int Symbol_Digits=(int)MarketInfo(Currency,MODE_DIGITS);
if (Symbol_Digits==2 || Symbol_Digits==3)
{
Calculated_Slippage=Slippage_pips;
}
else if (Symbol_Digits==4 || Symbol_Digits==5)
{
Calculated_Slippage=Slippage_pips*10;
}
return(Calculated_Slippage);
}

int LongPosition()//ロングポジション数を取得
{
int buys=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
{
if(OrderType()==OP_BUY) buys++;
}
}
return(buys);
}

int ShortPosition()//ショートポジション数を取得
{
int sells=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
{
if(OrderType()==OP_SELL) sells++;
}
}
return(sells);
}

//+---------------------------------------------------------------------+
// エントリ関連関数
//+---------------------------------------------------------------------+

//ポジションエントリ関数
void OpenOrder(int EntryPosition)
{
int res;
bool Modified;
double SL;
double TP;
int SLP=AdjustSlippage(Symbol(),Slippage );

//ロットサイズ調整
Lots=LotsAdjustment(LotsAdjustPer,LotsAdjustPer2);//マーチンゲール

if( EntryPosition == 1 ) //買いの場合のエントリ条件
{
res=OrderSend(Symbol(),OP_BUY,Lots ,Ask,SLP,0,0,"20210222 Sell",MAGIC,0,Red);
if (OrderSelect(res,SELECT_BY_TICKET)==true)
{
if (stoploss!=0) SL=OrderOpenPrice()-stoploss*AdjustPoint(Symbol());
if (takeprofit!=0) TP=OrderOpenPrice()+takeprofit*AdjustPoint(Symbol());
}
if(SL!=0 || TP!=0) Modified=OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,Red);
}
else if(EntryPosition == -1 ) //---- 売りエントリ
{
res=OrderSend(Symbol(),OP_SELL,Lots,Bid,SLP,0,0,"20210222 Sell",MAGIC,0,White);
if(OrderSelect(res,SELECT_BY_TICKET)==true)
{
if(stoploss!=0) SL=OrderOpenPrice()+stoploss*AdjustPoint(Symbol());
if(takeprofit!=0) TP=OrderOpenPrice()-takeprofit*AdjustPoint(Symbol());
}
if(SL!=0 || TP!=0) Modified=OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,White);
}
return;
}

//ポジション数調整関数
double LotsAdjustment(int MaxMartin, double Multi)
{
int Loss_Count = 0;
for (int i= OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
if (OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())
{
if(OrderProfit()<=0)
{
Loss_Count++;
}
else if(OrderProfit()>0)
{
break;
}
}
}
}
if (Loss_Count>=MaxMartin)
{
Loss_Count=MaxMartin;
}
double LotSize= BaseLots*MathPow(Multi,Loss_Count);
if (LotSize>=MarketInfo(Symbol(),MODE_MAXLOT))
{
LotSize=MarketInfo(Symbol(),MODE_MAXLOT);
}
return(LotSize);
}

//+---------------------------------------------------------------------+
// エグジット関連関数
//+---------------------------------------------------------------------+

//ポジションクローズ関数
void CloseOrder(int ClosePosition)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
int res;
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())
{
if(OrderType()==OP_SELL && (ClosePosition==-1 || ClosePosition==0 )) //売りポジションのクローズ
{
res=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10,Silver);
}
else if(OrderType()==OP_BUY && (ClosePosition==1 || ClosePosition==0 ) ) //買いポジションのクローズ
{
res=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10,Silver);
}
}
}
}
}

//+---------------------------------------------------------------------+
//  インジケーター
//+---------------------------------------------------------------------+

//3-3 フィルター|RSIが買われすぎ売られすぎラインを超過(逆張り)
int Indicator3_3(int i,int TimeScale,int RSIPer,double H,double L)
{
double Main=iRSI(NULL,TimeScale,RSIPer,PRICE_CLOSE,i);
int ret=0;
if (Main>H)
{
ret=-1;
}
else if(Main<L)
{
ret=1;
}
return(ret);
}

//+---------------------------------------------------------------------+
// ティック毎の処理
//+---------------------------------------------------------------------+
void start()
{


// ニューバーの発生直後以外は取引しない
static datetime bartime=Time[0];
if (Time[0]==bartime) return;
bartime=Time[0];

//各種パラメーター取得
int EntryBuy=0;
int EntrySell=0;
int ExitBuy=0;
int ExitSell=0;

int LongNum=LongPosition();
int ShortNum=ShortPosition();

//クローズ判定
//買いのクローズロジックは選択されていません
//売りのクローズロジックは選択されていません

//エントリ基準取得
int Strtagy1=Indicator3_3(Entry1,TimeScale1,RSI1_period,RSI1_high,RSI1_low);
int TotalNum=ShortNum+LongNum;

//エントリ判定
//買いエントリのロジックは選択されていません
if*1
{
EntrySell=1;
}

//オープン処理
if( ((Ask-Bid)/AdjustPoint(Symbol())) < MaxSpread )
{
if(EntryBuy!=0)
{
OpenOrder(1);
}
if(EntrySell!=0)
{
OpenOrder(-1);
}
}
}

 

結果はいかに?

 

2021年、いかなる危機が世界を襲って来たとしても、皆さんは稼ぎに稼ぎまくって金銭的勝者になってくださいね。

 

ではまたです。

 

めざせ!ランキング1位にご協力をお願いいたします。

にほんブログ村 為替ブログへ
FXに関する人気ブログはこちらですよ(o^―^o)

 

*1:TotalNum<MaxPosition && Strtagy1==-1