FC2ブログ

use Math::Trig qw(atan);

# MESA Sinewave
# 引数 期間 期間 値 ($Period, $Price)
# 戻り値 hash {'sine'} {'leadsine'} (%sine)
sub MESASINEWAVE{
my ($Period, $Price) = @_;
my %sine = ();
my $pi = atan2(1, 1) * 4;
my $count = @$Price - $Period;

# 期間と配列数の確認
if(($Period <= 0) || ($count < 0)){
return 0;
}

# 計算
for(my $i = $count; $i >= 0; $i--){
my $realpart = 0;
my $imagpart = 0;
for(my $j = 0; $j < $Period; $j++){
$realpart += sin(2 * $pi * $j / $Period) * $$Price[$i + $j];
$imagpart += cos(2 * $pi * $j / $Period) * $$Price[$i + $j];
}

my $dcphase = 0;
if($imagpart > 0.001){
$dcphase = (180 / $pi * atan($realpart/$imagpart)) + 90;
}else {
$dcphase = 90;
}

if($imagpart < 0){
$dcphase = $dcphase + 180;
}
if($dcphase > 270){
$dcphase = $dcphase - 360;
}

$sine{'sine'}->[$i] = sin($dcphase * $pi / 180);
$sine{'leadsine'}->[$i] = sin(($dcphase + 45) * $pi / 180);
}

return %sine;
}


The Mesa Sine Wave calculates two sine curves.
When the two curves resemble a sine wave, the market is in a cycle, otherwise the market is trending.
Signals are generated only when the market is in a cycle.
A buy signal is generated when the Sine crosses up over the Lead Sine, and a sell signal when the Sine crosses down below the Lead Sine.

Google 翻訳
メサ正弦波は2つの正弦曲線を計算します。
ときに、2つの曲線は、正弦波のように、市場のサイクルを、それ以外の市場では傾向にあります。
信号の場合にのみ、市場のサイクルで生成されます。
買いシグナルは、sineがleadsineをクロスアップし、売りシグナルがsineがleadsineをクロスダウン。
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS