ひろぴーさんが満月の日に仮想通貨の価格が頂点になるとツイートしていました。
https://twitter.com/hiropi_fx/status/1253610559901057024
トレーディングビューって 月の満ち欠けまで表示できるようです。
やはりすごいの一言ですね
早速USDJPYで月を出してみました。
チャート上部黒丸●が満月 下の中抜き丸〇が新月です。
一致しているように見えます。
そんなことがあるのでしょうか?月は約30日周期です。
特定の日に例えば20日などにピークが来やすいのでしょうか
そこで、検証です。
調べてみると月の周期は29.530589日です。
月1回の取引です、長期の2005年からのデータで分析したいと思います。
満月の計算です。
2005年最初の満月は1月25日
MT4の時間datetimeは1970.1.1 00:00:00からの秒数です。
現在の秒TimeCurrent()から最初の満月の日を引きます。
これを86400でったあまりが1未満の日が29.53・・・周期の日になります。
(86400=24時間x60分x60秒)
新月エントリー満月クローズにしても成績が芳しくなかったので最適化します。
(ここで間違えていました💦じつは満月エントリー新月クローズを作っていました
)
閉じる日は2005.1.xにすれば月齢がてきとうにあいます。
int d;
input int day=1;
void OnTick()
{
if(MathMod((TimeCurrent()-StringToTime("2005.1.25 00:00"))/86400,29.530589)<1
)d=OrderSend(Symbol(),OP_BUY,0.1,Ask,0,0,0,NULL,1);
if(MathMod((TimeCurrent()-StringToTime("2005.1."+day+"+ 00:00"))/86400,29.530589)<1)
for(int i=OrdersTotal(); i>0;)
{if(!OrderSelect(--i,0))continue;
d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);
}
}
2005.1.29 月齢18が成績がいいようです。
友人曰く「リーマンの極端な下降シーン以外では使えそうです。」
確かにそうですね。
ここでソースを見返して重大なことに気が付きました。
満月エントリーロング、月齢18日(Day=29)クローズにしていました💦
そこで修正したのがこちら
int d;
input int day=1;
void OnTick()
{
if(MathMod((TimeCurrent()-StringToTime("2005.1."+day+"+ 00:00"))/86400,29.530589)<1
)d=OrderSend(Symbol(),OP_BUY,0.1,Ask,0,0,0,NULL,1);
if(MathMod((TimeCurrent()-StringToTime("2005.1.25 00:00"))/86400,29.530589)<1)
for(int i=OrdersTotal(); i>0;)
{if(!OrderSelect(--i,0))continue;
d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);
}
}
一番いいのは月齢23日(Day=4)ロングエントリー 満月クローズです。
これはこれでいいですね
0 件のコメント:
コメントを投稿