ThisAlgorithmUsed in gilstock, A WP7 individual stock trading software
Description of the flush algorithm:
1 CLR = (CLOSE-LLV (low, n)/(HHV (high, n)-llv (low, n ))*
100 ;
2 A = SMA (CLR, M1,
1 );
3 B = SMA (A, M2,
1 );
4 E =
3 *-
2 * B;
5 If (A <
0 ) A =
0 ;
6 If (A>
100 ) A =
100 ;
7 If (B <
0 ) B =
0 ;
8 If (B>
100 ) B =
100 ;
9 If (E <
0 ) E =
0 ;
10 If (E>
100 ) E =
100 ;
11 K:;
12 D: B;
13 J: E;
C # implementation. The kdj data is correct nine days after the new shares are listed in the theoretical interval.
View code 1 /// <Summary>
2 /// Kdj Algorithm
3 /// </Summary>
4 /// <Param name = "N"> 9 </Param>
5 /// <Param name = "M1"> 3 </Param>
6 /// <Param name = "m2"> 3 </Param>
7 /// <Param name = "klstocklist"> K-line data </Param>
8 /// <Returns> </returns>
9 Public Static List <klinfo> computationkjd (
Int N,
Int M1,
Int M2, list <klinfo> klstocklist)
10 {
11
12 For (
Int I =
0 ; I <klstocklist. Count; I ++)
13 {
14 Double CLR =
0 ;
15 Double A =
0 ;
16 Double B =
0 ;
17 Double E =
0 ;
18
19 Getminmaxpirce (I +
1 , N, klstocklist );
20
21 If (Klstocklist [I]. KID =
1 )
22 {
23 CLR = (klstocklist [I]. closeprice-klstocklist [I]. minprice)/(klstocklist [I]. maxprice-klstocklist [I]. minprice )*
100 ;
24 A = (
1 * CLR + (M1-
1 )*
0 )/
1 ;
25 B = (
1 * A + (m2-
1 )*
0 )/
1 ;
26 E =
3 *-
2 * B;
27
28 }
29 Else
30 {
31 CLR = (klstocklist [I]. closeprice-klstocklist [I]. minprice)/(klstocklist [I]. maxprice-klstocklist [I]. minprice )*
100 ;
32 A = (
1 * CLR + (M1-
1 ) * Klstocklist [I-
1 ]. Kvalue)/M1;
33 B = (
1 * A + (m2-
1 ) * Klstocklist [I-
1 ]. Dvalue)/m2;
34 E =
3 *-
2 * B;
35 }
36
37 Klstocklist [I]. Ssp = fulfill;
38 Klstocklist [I]. kvalue =;
39 Klstocklist [I]. dvalue = B;
40 Klstocklist [I]. jvalue = E;
41
42 If (A <
0 ) Klstocklist [I]. kvalue =
0 ;
43 If (A>
100 ) Klstocklist [I]. kvalue =
100 ;
44 If (B <
0 ) Klstocklist [I]. dvalue =
0 ;
45 If (B>
100 ) Klstocklist [I]. dvalue =
100 ;
46 If (E <
0 ) Klstocklist [I]. jvalue =
0 ;
47 If (E>
100 ) Klstocklist [I]. jvalue =
100 ;
48 }
49
50
51
52 Return Null ;
53
54 }
55
56 /// <Summary>
57 /// Obtain the maximum and minimum range
58 /// </Summary>
59 /// <Param name = "Index"> Daylight Saving Time </Param>
60 /// <Param name = "N"> 9 </Param>
61 /// <Param name = "klstocklist"> K-line data </Param>
62 /// <Returns> </returns>
63 Public Static Void Getminmaxpirce (
Int Index,
Int N, list <klinfo> klstocklist)
64 {
65
66 VaR Minpirce =
From N
In Klstocklist
Where N. Kid <= index & N. Kid> (index-N) <
0 ?
0 : (Index-N ))
Select N;
67
68 If (Minpirce. Count ()! =
0 )
69 {
70 Klstocklist [index-
1 ]. Minprice = minpirce. Select (n => N. lowprice). Min ();
71 Klstocklist [index-
1 ]. Maxprice = minpirce. Select (n => N. highprice). Max ();
72 }
73
74
75 }
Final figure WP7:
Flush graph: