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: