ピコン🚨ピコン🚨アラーームッ(アップデート版)

【お知らせ】2019/7/23
 ザラバ中にB上限、B下限の表示が消えてします事象が発生しておりますので、一部プログラム修正致しました。B上限、B下限の数値についてはTimer外での処理でしたが、Timer毎に出力する形に変更しております。またインジケータの設定→一般→累積計算のための追加データをロードにチェックを入れて、 1 以上に設定ください。これは理由不明の謎処置?🤔なのですが、これにより改善されるかと思います。

 

 続いて設定画面→スタイル変更で処理が停止してしまう事象につきましては、メニューバー→表示→更新 でレーダースクリーンを一度リセット下さい。その他細かな部分でも修正(色変更や符号関係)を加えております。
 
 さらにさらに、今回追加でアラート機能を拡充しました(やぶ蛇にならなければ良いけど…😓)。設定画面で"1:BOX内に入ったときにアラーム / 2:BOX外に出たときにアラーム"という項目と、"BOXを上抜け(下抜け)で追加音:アドレス"という項目を追加しております。前者の使い方としては、すでに現在値がBOX内にあり、その後BOX外に出た時にアラームを出したいのであれば、該当部分の初期設定1を2に変更して頂ければ対応できます(個別推奨)。後者のBOXを上抜け~の使い方としては、通常本インジケータは音声(スピーチ用テキスト)設定で使って頂きたいのですが、例えばBOXを下抜けしたときに、音声スピーチとは別に警告音を追加したい(仮に・・・)のであれば、トレステのフォルダ内にある音声ファイルのアドレス"C:\Program Files (x86)\TradeStation 9.5\Program\サイレン.wav"と記述して頂くとサイレン+音声スピーチで知らせてくれます。これは遊び心で追加しただけなので、必要ない場合等は空欄のままにして下さい💦(初期設定は空欄)。私の場合、音声ファイルの格納先は上記アドレスでしたが、PCの環境によっては異なるかも知れません。他にも様々な音声ファイルがデフォルトで備わっていますのでお試しください(自分好みの音声ファイルを作成して、設定することも可能!!)。

 最後におすすめのアラート設定は以下通りです。

 1回のみアラート表示(A)にすると、1回アラートが作動すると、無効化されて、アラート有効化(E)のチェックボックスが塗りつぶされますので、もう一度鳴らしたいときは再度クリックしてください。

 以下ダウンロードファイルです。最新版はV3となります。

 すでにB上限、B下限を多数入力されている方は、以下ファイルで上書きして頂くと入力値は反映されるかと思います。但し以後バージョン管理はお気を付けください。

もし気に入って頂けたら、お使いください(。ᵕᴗᵕ。)"

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

数ヵ月ぶりのノート更新です。|ω・`)チラッ

 今回ご紹介するインジケータは前回同様アラーム機能なのですが、上限と下限を設定することで、そのレンジ(ボックス)に到達するとアラームを鳴らすという代物です(特に何の変哲もありませんよね…😅)

 ただちょっとこだわった部分があります。このインジケータはレーダースクリーン上で使用するものなのですが、現在値がそのレンジ内に納まっている間、シグナルの部分が点滅を続けます😤(Timerを使ってこれをやりたかっただけ!💦)

 点滅するインジケータ色は設定画面で変更できます。対応しているのはEasyLanguageカラー予約語になります。

 点滅のタイミングは、初期設定2000ミリ秒ですが、変更したい場合はTradeStation開発環境を開いて頂き、青枠で囲ったTimer1をクリック、右に表示されるプロパティ画面の赤枠で囲ったIntervalの数値を変更下さい。単位はミリ秒です。

 音声アラームの設定は、過去記事参照下さい。またインジケータの設定→スタイルで表示文字を真ん中に整列する等してもいいかと思います。

 以下インジケータ本体です。

ファイル消去済み

 以下はソース(最新版)となりますが、こちらから利用したい場合は、Timerの挿入、設定が別途必要となりますのでお気を付けください。(設定方法省略)

inputs: 
	Upper_limit( 99999 ) [DisplayName = "BOX上限"],
	Lower_limit( 0 ) [DisplayName = "BOX下限"],
	pColor(Green)[DisplayName = "点滅する際の色名を指定下さい"],
	UpBoxColor(DarkRed)[DisplayName = "現在値が設定したBOXより上にある場合の色名を指定下さい"],
	LoBoxColor(DarkBlue)[DisplayName = "現在値が設定したBOXより下にある場合の色名を指定下さい"],
	iAlert(1)[DisplayName = "1:BOX内に入ったときにアラーム/2:BOX外に出たときにアラーム"],
	string iFilename1("")[DisplayName = "BOXを上抜けした時に追加で音を鳴らしたい場合、アドレスを指定下さい"],
	string iFilename2("")[DisplayName = "BOXを下抜けした時に追加で音を鳴らしたい場合、アドレスを指定下さい"];
	
	
				
variables:

	string sUpper_limit(""), 
	string sLower_limit(""); 
	


method void Timer1_Elapsed(elsystem.Object sender, elsystem.TimerElapsedEventArgs args) 
begin
	
	
	outputs();		
	
	If Upper_limit <> 99999 and Lower_limit <> 0 and close <=  Upper_limit and close >= Lower_limit then begin

	
		If GetPlotBgColor(1) = Black then begin
			
			plot1("BOX" ,"シグナル");
			setplotBGcolor( 1 , pColor);
		end
	
		Else begin
		
			plot1("BOX" ,"シグナル");
			setplotBGcolor( 1 , Black );
		
		end;

	end;
	
end;


method void outputs() begin

	If Upper_limit <> 99999 then	
		
		Plot2( sUpper_limit ,"B上限");
	
	If Lower_limit <> 0 then
	
		Plot3( sLower_limit ,"B下限");
	
	If Upper_limit = 99999 then Begin
		 
			Plot2( "-" ,"B上限" );
		End
	
		Else begin
	    	
			Plot2( sUpper_limit,"B上限" );
		
	end;

	If Lower_limit = 0 then Begin
		 
			Plot3( "-" ,"B下限" );
		End
	
		Else begin
	    	
			Plot3( sLower_limit,"B下限" );

	end;
			
end;


method void Initialize() begin

	setplotBGcolor( 1 , black );
	setplotBGcolor( 2 , black );
	setplotBGcolor( 3 , black );
	
	sUpper_limit = NumToStr(Upper_limit,0); 
	sLower_limit = NumToStr(Lower_limit,0);

	plot1(" " ,"シグナル");

		If Upper_limit = 99999 then Begin
		 
			Plot2( "-" ,"B上限" );
		End
	
		Else begin
	    	
			Plot2( sUpper_limit,"B上限" );
		
	end;

	If Lower_limit = 0 then Begin
		 
			Plot3( "-" ,"B下限" );
		End
	
		Else begin
	    	
			Plot3( sLower_limit,"B下限" );

	end;

end;


Once Initialize();

If Upper_limit <> 99999 and close >  Upper_limit then begin
	
  	plot1("↑" ,"シグナル");
   setplotBGcolor( 1 , UpBoxColor );
   
end;

If Lower_limit <> 0 and close <  Lower_limit then begin
	
	plot1("↓" ,"シグナル");
	setplotBGcolor( 1 , LoBoxColor );
	
end;	


if AlertEnabled then
begin
	if iAlert = 1 and Upper_limit <> 99999 and Lower_limit <> 0 and close <= Upper_limit and  close >= Lower_limit then
	
		Alert(Description + (":") + ("BOX内に到達しました"));
		


	If iAlert = 2 then begin
	
	  If close > Upper_limit then begin
	   
	   		 Alert(Description + (":") + ("BOXを上抜けしました"));
	   		 Condition1 = PlaySound(iFilename1);
	  end;
	  
	  If close < Lower_limit then begin
	   
	   		 Alert(Description + (":") + ("BOXを下抜けしました"));
	   		 Condition1 = PlaySound(iFilename2);
     end;

	end;

end;



 最後に本プログラムは、ひでぼーさんのプログラムより着想&参考させて頂いております。いつもEasyLanguageのプログラムを公開して下さり大変ありがとうございます|彡サッ!



この記事が気に入ったらサポートをしてみませんか?