短いコードでも右肩上がりのグラフにできることの証明(MT4EA)非実用
バックテスト結果
ソースコードはこちら
input double Lot = 0.01;
input int StopLoss = 300;
input int TakeProfit = 50;
input int Slippage = 3;
input int StartHour = 21;
input int Distance = 50;
input int Expiration = 4;
input int MAGIC = 234234234;
void OnTick()
{
int b_o=0,s_o=0,R;
double BuyPrice=NormalizeDouble(iClose(Symbol(),Period(),1)-Distance*Point,Digits);
double SellPrice=NormalizeDouble(iClose(Symbol(),Period(),1)+Distance*Point,Digits);
datetime expiration = TimeCurrent()+3600*Expiration;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS)==true)
{
if( OrderSymbol() !=Symbol() || OrderMagicNumber() != MAGIC ) continue;
if( OrderType() == OP_BUYLIMIT ) b_o++;
if( OrderType() == OP_SELLLIMIT ) s_o++;
}
}
if( Hour() == StartHour && b_o<1 )
{
R = OrderSend(Symbol(),OP_BUYLIMIT,Lot,BuyPrice,Slippage,NormalizeDouble(BuyPrice-StopLoss*Point,Digits),NormalizeDouble(BuyPrice+TakeProfit*Point,Digits),"",MAGIC,expiration,clrBlue);
}
if( Hour()==StartHour && s_o<1 )
{
R = OrderSend(Symbol(),OP_SELLLIMIT,Lot,SellPrice,Slippage,NormalizeDouble(SellPrice+StopLoss*Point,Digits),NormalizeDouble(SellPrice-TakeProfit*Point,Digits),"",MAGIC,expiration,clrRed);
}
return;
}
33行あるやんけ…
GBP絡みのうねりの激しい通貨ペアではやや右肩あがりになるようです。
もちろん、実戦で使えるような代物ではないです。ストップレベルも狭いアカウントでないと機能しないですし、フェイルセイフその他もありません。
オーダーもSLTPを分けていないので、口座タイプによってはオーダーが一回も通らないかもしれません。
ただ「勝てるEAは大掛かりなコードでできているんだ」という意見に対する僕なりの反論です。
普通はこれにいろいろ肉付けをして、短くても150行。長い場合は500行くらいでしょうか。1000行越えの場合もありますが、そこまでいくと一部をDLLやインジケーターにするべきだと思います。
(MQL4)初めてのEA自作のための教科書~実用編~[EA自作]
関連記事
-
-
株価指数両建て裁定取引のやり方と検証
日経225やダウ、SP500のチャートには強い相関関係があります。かつては「日経はニューヨークの後追
-
-
プログラマ向け自動売買開発アイディア
「MQL4/MQL5は扱えるようになったけど、プログラミングのアイディアがない」というプログラマは比
-
-
とある両建てロジックのEA検証(コードあり)
今回はちょっとしたシンプルな実験を行います。 お題は両建てです。 ポジションが0の場合SLTP付
-
-
(MQL4)初めてのEA自作のための教科書~実用編~[EA自作]
実用に向けたEAのコーディングについて説明します。本当に1からEAの開発について知りたい方はこちら。
-
-
入門者のEA自作のための作り方講座(MQL4/MT4)
プログラミング初心者の方が初めてでもEAを開発できるように解説したページです。このページの内容をマス




