2016年7月6日水曜日

これからSUNNYの掲載を祝って、諸君にSUNNYの力を見せてやろうと思ってね

来たまえ、ぜひ見てもらいたいものがあるんだ

凄まじい破壊力を持つSUNNYだよ

 こいつのバックテストの結果が無ければ、誰もSUNNYを信じはしなかったろう

SUNNYは資産を守りいつの日にかアーリーリタイアする時の道標として君に受け継がれるのだ

見せてあげよう、SUNNYの成績を!!

素晴らしい!最高のEAだとは思わんかね


FX-ON SUNNY



































目が~♪


ZEVEN フロントテスト開始!! 

梅雨の京は物騒です。

7/1京大で爆発&放射性物質拡散、
7/2祇園祭で有名な八坂さんに爆破予告
7/5昨夜は先斗町の火事です。
先斗町は京風の木造建築が並ぶ非常に狭い道です。
通りの入口から10m離れたところに消防車が並んでいましたがもちろん中には入れません
街中煙だらけでおそろしい一夜でした。

さて、EA ZEVENのフロントテストが開始となっていました。

ZEVENは低地ドイツ語で7 英語で言うところのSEVENです。

AMSERとZEVENで最初と最後を挟みこんでしまおうという作戦です!

まぁ挟んだからといって間のEAが裏返るわけでもないのですがw

そしてAMSERは原色系ですがこちらはモノトーンをイメージしています。

はたして、いい成績をだして発売までこぎつける事ができるでしょうか

応援お待ちしております!

FX-ON(未発売中の発売サイト)

ZEVENマニュアル兼商品案内


2016年7月5日火曜日

【解決&多謝】 複数通貨ペアのOnTick() EventSetMillisecondTimer その4

だいすけさんからWINDOWSの割り込みタイミングについて教えていただきました。
HALといえば2001年宇宙への旅立ち?
見たことは無いのですが有名な映画です。
うる覚えなのですが、HALという最強コンピューターとモノマーが戦う?
そしてHALはIBMの一文字上をとってなずけられたと
H⇒I A⇒B L⇒M 

話しが脱線しました。
結局ウインドウズは10msもしくは16ms単位で割り込み処理をしているようです。
OSの特性のようですので、他のOSの場合違うようです。

そこでVPS上で測定です。

使えるねっとUS と お名前.COM日本で測定しました。

ソースはこちら 純粋にVPSの最適な秒間隔の比較です
前回の失敗 一回目と二回目はカウントしません


int i,k,l,m,os;datetime t;string texts;
extern int j=1;
void OnInit(){EventSetMillisecondTimer(j);}
void OnDeinit(const int reason){EventKillTimer();}
void OnTimer(){
if(os==TimeSeconds(TimeLocal()))
{i++;}
else{m++;if(m>2)
{k++;l+=i;texts=TimeMinute(TimeLocal())+":"+TimeSeconds(TimeLocal())+" count"+(l/k)+" "+m;Comment(texts);}
i=1;os=TimeSeconds(TimeLocal());
}}



使えるねっとは最多が15秒間隔、次点が3,4秒間隔です。
お名前.COM日本は2,3秒間隔が最多です。

両方15msを超えると急に回数が減ります。
複数回測定してもほぼ同じ値が出ます



おなじWIN2008のはずです。
なぜ違う結果になったかは謎・・・

EventSetMillisecondTimerは使えるUSでは15msがよさそうですね。

数末の危機!build 988

祇園祭り開催と同時に八坂神社の爆破予告があったそうです

なんと罰当たりな事を・・・

1999年など数末には何かが起こります。

そしてビルド988が出ました。


あと11しか残っていない・・・・

build 999の次は Version 4.01 Build 000になると思いますがどうでしょう



今回の修正はObjectsDeleteAllが正しく動作するようになったようです。(未確認)








2016年7月4日月曜日

【解決&多謝】 複数通貨ペアのOnTick() EventSetMillisecondTimer その3

それではいよいよEventSetMillisecondTimerの実力をみてみます!!!!

先程までは1分回に何回というカウントでしたが
今回は1秒に何回かを見ます。

もうひとつ変更点が「その2」までは0からカウントしていましたが1からすることにしました。


int i,os;datetime t;string texts;
void OnInit(){EventSetMillisecondTimer(1);}
void OnDeinit(const int reason){EventKillTimer();}
void OnTimer(){
if(os==TimeSeconds(TimeLocal()))
{i++;}
else{
texts+=TimeMinute(TimeLocal())+":"+TimeSeconds(TimeLocal())+" count"+i+"\n";
Comment(texts);i=1;os=TimeSeconds(TimeLocal());
}}

まずは1/1000秒

本番は三回目からです
1000と出ればいいのですが・・・

結果は59回 意味深な数です。
一分と間違えていないか何度も確認したのですが
何度やっても1秒間に60前後です
16~17/1000ミリ秒がミニマムでしょうか

パソコンの処理時間を考えて50ミリ秒程度にするのがよさそうですね。
そういえば、だいすけさんが初めに書かれた数字も50でした!!

やはりすごい人だなぁ・・・















【解決&多謝】 複数通貨ペアのOnTick() EventSetMillisecondTimer その2

先程は一分は81秒という驚きの結果に唖然としました。

しかし、祇園祭開催中の京都では何が起こっても驚きではありません!!

先程はサーバー時間をベースに稼働させていましたが今度はローカル時間

パソコンの時間をベースに同じことをしました。
変更点Minute() ⇒ TimeMinute(TimeLocal())
Hour()も同様に


int i,os;datetime t;string texts;
void OnInit(){EventSetTimer(1);}
void OnDeinit(const int reason){EventKillTimer();}
void OnTimer(){
if(os==TimeMinute(TimeLocal()))
{i++;}
else{
texts+=TimeHour(TimeLocal())+":"+TimeMinute(TimeLocal())+" count"+i+"\n";
Comment(texts);i=0;os=TimeMinute(TimeLocal());
}}


一回目が0秒という事で59回が正解です!!

どうやら、きっちりと仕事をしているようです。
MT4さん誤解してごめんなさい!!







【解決&多謝】 複数通貨ペアのOnTick() EventSetMillisecondTimer

複数通貨ペアのOnTickで詰まりました。
いや、詰みましたというほうが正しい表現ですね。

こちらでSOS信号を出していたのですが「だいすけ」さんからありがたい教えを頂きました。

「EventSetMillisecondTimer」でミリ秒単位で制御ができるというものです。

だいすけさんありがとうございます!!!


MQL4のサイトにはEventSetTimerのすぐ上にあったのに全く気が付きませんでした・・・

早速稼働テストをしてみたいのですが、
その前に疑問がありますEventSetTimerで1秒をセットしても一分間に60回動作していない気がするのです。

そこで!!
int i,os;datetime t;string texts;
void OnInit(){EventSetTimer(1);}
void OnDeinit(const int reason){EventKillTimer();}
void OnTimer(){if(os==Minute()){i++;}else{texts+=Hour()+":"+Minute()+" count"+i+"\n";Comment(texts);i=0;os=Minute();}}

1秒ごとにOnTimerを動くようにセットして
サーバー時間の分が変わる毎に何回動作したか左上コメントに記録します。
第一回目は10:14スタート直後に出ますので0
次の10:15は途中から始まるので少なくてOKです(←ちゃんと処理しなくてごめんなさい)
三行目の10:16からを見て下さい!
一分当たり30回~81回まであります・・・・・・・
何かのずれで前後の±があるのかと思いましたが
10:26前後をご覧ください
61回、64回、64回、75回う~~~~~ん謎です。
処理に手間取ると減ることはあるのかと思いますが、
増えるのはなぜでしょうか サーバー時間の更新が遅いのかもしれませんね








EA MA 平均について

①平均を使った様々なエントリー手法があります。
価格との比較や平均同士のクロス、平均乖離、MACD、ブルベア、ボリンジャーバンドすべて平均系です。
平均そのものにも多くの種類があり iMA でSMA , EMA , SMMA , LWMA その他にも相乗平均や調和平均などというものもあります。
その中でクロスの結論を出したいと思います。

②エントリーしていない時の証拠金はムダ金です。
ポジションを閉じてから次のエントリーまで1分以内を目指せば、より利益が増えるのではないでしょうか。

① + ② = EA MA

という事で

エントリー⇒シャンデリアストップ⇒クローズ⇒できるだけ早くエントリー

ロットは固定です!
2014.1.1-2016.6.30



いい、できですね。
わたし的にはiMAの完成形です!
最近のソースはこんなのタイプが多いですね
(インデントは公開用に着けていますが本番用はスペース、改行は一切つけません
先日出品したSUNNYは12行目が938文字でした)

IF分を減らすために理論式でまとめるのが好きだったのですが
今は関数を排し同じ通り道に複数回、同じ処理が無い時は何度でも繰り返し記述します。
この書き方が速い気がします

#property copyright "Copyright 2016/7/4,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
#property strict
extern double L=0.1;//Lots(ロット)
double a,d,F,S,i,A,B;
void OnTick()
{
A=Ask;B=Bid;if(OrdersTotal()==0)
  {
    if(Time[0]!=i)
    {
    i=(double)Time[0];F=iMA("",0,4,0,3,0,1);S=iMA("",0,2,0,2,0,1);
    if(F>S+0.004){a=A;d=OrderSend("",0,L,a,2,a-0.02,0,"",1,0,0);}
    if(F<S-0.004){a=B;d=OrderSend("",1,L,a,2,a+0.02,0,"",1,0,0);}
    }
  }
  else
  {
  d=OrderSelect(0,0);if(OrderType())
    {
    if(a>B){a=B;d=OrderModify(OrderTicket(),OrderOpenPrice(),a+0.02,0,0,0);}
    }
    else
    {
    if(a<A){a=A;d=OrderModify(OrderTicket(),OrderOpenPrice(),a-0.02,0,0,0);}
    }
  }
}


EA MAはここをクリック




2016年7月3日日曜日

MT4 B985登場

記念魚拓です。
先週末からうわさは聞いていたのですが、私のところにも来ました!
チャート関係を含むバグフィックスとCHATができるようになったようですが、
どんな時にチャットするのかイメージが判りません。
開発しながら悩んだ時にするのでしょうか?
それとも裁量トレードでしょうか?
まさかの出会い系?

2016年7月2日土曜日

京都燃える!ホームページ作成中!

昨日から祇園祭開始です
これから一ヶ月はコンチキチンです。

そして、昨夜は京都燃えるという感じでした。
消防車が次から次へと北に向かって上っていきます。
第一報は「京都大学で爆発があった。放射性物質が漏れている」
またまたどんなデマかと思っていたのですが本当だったようです。
不要不急の放射線測定を禁止する通達がでたという噂まで、
ほんまこわいわ~


MT4 KYOTOをいつもご愛読ありがとうございます

京都とMT4のブログですが開始してもうすぐ8カ月

ブログをすこしリニューアルしてみました。


そしてMQL4の備忘録「MT4ASIA」を作成開始



売っているEAの詳細もWEBマニュアル化することにしました。

少しずつ作っていこうかなと思っています。
↓↓↓




2016年7月1日金曜日

【挫折編・だれか教えて下さい】 複数通貨ペアのOnTick()

やり方がわからず挫折しました!(><;)

EAを動作させるときにはOnTick()を使います。

たまにOnTimer()を使いますが基本的にはOnTick()です。

OnTick()はティックに変動があるたびに動作します。

価格変動のたびに動くという事ですので1秒間に何度も動いたり、数秒間動かなかったりと気まぐれな奴です。

裁量トレードをしている時にティックチャートをみているとぐりぐり動いてあせったり、

なかなか動かずにじらされたりしますね。

OnTick()ですがティックの変動というのは適応した通貨ペアのティックが変動した時になります。

という事は、USDJPYとAUDNZDの二つの通貨ペアを使うEAを作るとします。

OnTick()内にUSDJPYのエントリールーチンも、AUDNZDのエントリールーチンもあります。

USDJPYのチャートにEAを適応した時にはUSDJPYのティック変動があった時にしか

AUDNZDのエントリールーチンは動かないという事です・・・・


複数通貨ペアのEAは適応する通貨ペアによって結果が変わるかもしれません。

解決方法はEAを通貨ペアごとにわけてひとつのMT4に複数チャートを出して

それぞれ動かす事ですね・・・

現実的ではありません

通貨ペアごとにOnTick()を動かす方法は無いものでしょうか?