+91-0000000000

}

Monday – Friday : 9:00 AM – 6:30 PM

Luna Phase

Inspired by celestial patterns, the Luna Phase AFL utilizes amibroker data feed to correlate market behavior with lunar phases. This unique approach helps traders discern patterns influenced by cosmic cycles. By integrating these data feeds, the AFL provides a deeper understanding of market movements, enabling traders to align strategies with recurring lunar trends, potentially improving the timing and accuracy of their trades.

/
_SECTION_BEGIN("LunaPhase");
// Luna Phase Calculator.
// Code converted from: http://home.att.net/~srschmitt/lunarphasecalc.html
// OzFalconAB 

// Get Day/Month/Year in number format (NOT array).
Y = SelectedValue(Year()); M = SelectedValue(Month()); D = SelectedValue(Day());
Hr = SelectedValue(Hour()); Mn = SelectedValue(Minute()); 


// normalize values to range 0...1
function normalize( Val )
{

    Val = Val - floor( Val ); 
    if (Val < 0) {Val = Val + 1;}
    return Val;
}

// Set Pi.
PI = 3.1415926535897932385;

// calculate the Julian Date at 12H UT
YY = Y - floor( ( 12 - M ) / 10 );      
MM = M + 9;
if (MM >= 12) {MM = MM - 12;}

K1 = floor( 365.25 * ( YY + 4712 ) );
K2 = floor( 30.6 * MM + 0.5 );
K3 = floor( floor( ( YY / 100 ) + 49 ) * 0.75 ) - 38;
   
JD = K1 + K2 + D + 59; //		for dates in Julian calendar
if (JD > 2299160) {JD = JD - K3;} //		for Gregorian calendar
        
// calculate moon's age in days
IP = normalize( ( JD - 2451550.1 ) / 29.530588853 );
AG = IP*29.53;

Phase = "NEW";
if (AG < 27.68493) {Phase = "Waning crescent";S1=4;S2=8;}
if (AG < 23.99361) {Phase = "Last quarter";S1=4;S2=12;}
if (AG < 20.30228) {Phase = "Waning gibbous";S1=6;S2=14;}
if (AG < 16.61096) {Phase = "FULL";S1=6;S2=15;}
if (AG < 12.91963) {Phase = "Waxing gibbous";S1=6;S2=7;}
if (AG <  9.22831) {Phase = "First quarter";S1=2;S2=3;}
if (AG <  5.53699) {Phase = "Waxing crescent";S1=2;S2=1;}
if (AG <  1.84566) {Phase = "NEW";S1=0;S2=0;}

IP1 = IP;
IP = IP*2*PI;		// Convert phase to radians

// calculate moon's distance
DP = 2*PI*normalize( ( JD - 2451562.2 ) / 27.55454988 );
DI = 60.4 - 3.3*cos( DP ) - 0.6*cos( 2*IP - DP ) - 0.5*cos( 2*IP );

// calculate moon's ecliptic latitude
NP = 2*PI*normalize( ( JD - 2451565.2 ) / 27.212220817 );
LA = 5.1*sin( NP );

// calculate moon's ecliptic longitude
RP = normalize( ( JD - 2451555.8 ) / 27.321582241 );
LO = 360*RP + 6.3*sin( DP ) + 1.3*sin( 2*IP - DP ) + 0.7*sin( 2*IP );

Zodiac = "Pisces";
if (LO < 348.58) {Zodiac = "Aquarius";}
if (LO < 311.72) {Zodiac = "Capricorn";}
if (LO < 302.49) {Zodiac = "Sagittarius";}
if (LO < 271.26) {Zodiac = "Scorpio";}
if (LO < 242.57) {Zodiac = "Libra";}
if (LO < 224.17) {Zodiac = "Virgo";}
if (LO < 173.34) {Zodiac = "Leo";}
if (LO < 135.30) {Zodiac = "Cancer";}
if (LO < 119.48) {Zodiac = "Gemini";}
if (LO <  93.44) {Zodiac = "Taurus";}
if (LO <  51.16) {Zodiac = "Aries";}
if (LO <  33.18) {Zodiac = "Pisces";}


_N(Title = "Date = " + Y + "/" + M + "/" +D + " Hr:" + Hr + " Min:" + Mn + "\n" +
	"Age: " + AG + "     Phase: " + Phase + "\n" +
	"distance: " + DI + " earth radii\n" +
	"ecliptic\n" + 
	" latitude  = " + LA + "°\n" +
	" longitude = " + LO + "°\n" +
	"constellation = " + Zodiac+ "\n" + 
	"IP: " + IP1);


Color = IIf(O > C, colorBlack, colorYellow);
Plot( Close, "Price", color, styleCandle | styleOwnScale );
_SECTION_END();

Open chat
1
Hi, how can I help you?