There is a dedicated team standing behind the swiss ephemeris project to whom we should all be very grateful.
The following url is a general starting point:
https://www.astro.com/
Their programming interface is well documented here:
https://www.astro.com/swisseph/swephprg.htm
In my own words, I would say that the swiss ephemeris is a .dll that provides access to accurate and efficient astronomical data for use within a larger software application. My experiments started with the 32bit version when I noticed that several important and well known astro finance programs had already used the swiss ephemeris as a foundation. The application of astronomical data to market analysis is not included within the swiss ephemeris as that is the province of third party software developers. We should all respect the fact that astronomical methods of market analysis are fairly secretive for a good reason, so I will suggest that you explore the topic of how W.D. Gann might have used astronomy and medieval astrology as a method of market analysis like a detective. Look patiently at the work of authors like Jeanne Long, Michael Jenkins, Bradley Cowan, Patrick Mikula, Dr. Al Larson, and Earik Beann to name just a few. That is what I was forced to do and it took years to form a complete understanding that never stops evolving it seems. Since no software implements everything that is needed, I sought to extend what was already available by adding a few extra astrobodies to the existing infrastructure of off-the-shelf astro finance software. With help from others on the internet, I implemented unpublished and proprietary C and CPP wrappers around the swedll32.dll for another program, but I did not yet do that for MultiCharts. It seemed at first glance that it would be a very beneficial shortcut in the development process to be able to call the swedll32.dll or swedll64.dll directly from within PoweLanguage and not need to use PLKit to build further layers of wrapper implementations, but as always, it seems that the battle for time and money reveals unexpected pitfalls at every turn. I say that in this case because it looks as if something that should work in fact does not, but sometimes that is just an illusion and is part of the general confusion of learning. We are often left without support in such areas and we must hope for the mercy of more experienced people and even pray to God for inspiration and courage to forge ahead in the darkness of misunderstood technology. So I will mention that it is a common practice for compilers to add "name mangling" to a 32bit dll, and that is why function calls to swedll32.dll from within a scripting language may often require unusual characters such as "@" or "_" or an unexpected numeral such as "24" to be mixed into the expected function name. Using a tool such as "dumpbin" one can reveal a list of the function names including any unexpected mangling that needs to be represented when defining the dll and calling the dll in PowerLanguage. On the other hand, I hope that I will not be incorrect for saying that it is not common practice for "name mangling" to occur within a 64 bit dll. Therefore, we might observe that the expected function names appear to be simpler and more plainly understood. I will include an excerpt from the previously published work of another person on the internet to provide the following list of function calls which were extracted by dumpbin (a tool within the microsoft visual studio development environment) from both the swedll32.dll and also the swedll64.dll. Please note that in my own personal attempts I was not able to extract meaningful information from the 64 bit dll that I tested using dumpbin but it worked fine for me with the swedll32.dll.
Excerpt from the published work of another author follows:
After running dumpbin /EXPORT on both swedll32.dll & swedll64.dll (from the file called swe2.05.01_built_on_win.zip found at
http://www.astro.com/ftp/swisseph/) it appears the def file used would need to be adjusted depending which dll you used.
Results below:
Dump of file swedll32.dll
File Type: DLL
Section contains the following exports for swedll32.dll
00000000 characteristics
574DEB09 time date stamp Tue May 31 12:50:33 2016
0.00 version
1 ordinal base
143 number of functions
143 number of names
ordinal hint RVA name
1 0 00006F20 _swe_azalt@40
2 1 00011F80 _swe_azalt_d@28
3 2 00007130 _swe_azalt_rev@24
4 3 00011FD0 _swe_azalt_rev_d@20
5 4 00032A90 _swe_calc@24
6 5 00012000 _swe_calc_d@20
7 6 00032EE0 _swe_calc_ut@24
8 7 00012030 _swe_calc_ut_d@20
9 8 00032FA0 _swe_close@0
10 9 00012060 _swe_close_d@4
11 A 0003D2F0 _swe_cotrans@16
12 B 00012070 _swe_cotrans_d@12
13 C 0003D3A0 _swe_cotrans_sp@16
14 D 000120A0 _swe_cotrans_sp_d@12
15 E 0003D4A0 _swe_cs2degstr@8
16 F 000120D0 _swe_cs2degstr_d@8
17 10 0003D530 _swe_cs2lonlatstr@16
18 11 000120E0 _swe_cs2lonlatstr_d@16
19 12 0003D700 _swe_cs2timestr@16
20 13 00012100 _swe_cs2timestr_d@16
21 14 0003D830 _swe_csnorm@4
22 15 00012110 _swe_csnorm_d@4
23 16 0003D870 _swe_csroundsec@4
24 17 00012120 _swe_csroundsec_d@4
25 18 0003D8E0 _swe_d2l@8
26 19 00012130 _swe_d2l_d@4
27 1A 00011120 _swe_date_conversion@28
28 1B 00012150 _swe_date_conversion_d@24
29 1C 0003D920 _swe_day_of_week@8
30 1D 00012180 _swe_day_of_week_d@4
31 1E 0003D970 _swe_deg_midp@16
32 1F 0003D9C0 _swe_degnorm@8
33 20 000121A0 _swe_degnorm_d@4
34 21 0003DA20 _swe_deltat@8
35 22 000121D0 _swe_deltat_d@8
36 23 0003DA50 _swe_deltat_ex@16
37 24 0003DAA0 _swe_difcs2n@8
38 25 00012200 _swe_difcs2n_d@8
39 26 0003DAC0 _swe_difcsn@8
40 27 00012210 _swe_difcsn_d@8
41 28 0003DAE0 _swe_difdeg2n@16
42 29 00012220 _swe_difdeg2n_d@12
43 2A 0003DB20 _swe_difdegn@16
44 2B 00012250 _swe_difdegn_d@12
45 2C 0003DB40 _swe_difrad2n@16
46 2D 000330E0 _swe_fixstar@24
47 2E 00012280 _swe_fixstar_d@20
48 2F 00034850 _swe_fixstar_mag@12
49 30 00034DC0 _swe_fixstar_ut@24
50 31 000122B0 _swe_fixstar_ut_d@20
51 32 00007290 _swe_gauquelin_sector@52
52 33 00034E80 _swe_get_ayanamsa@8
53 34 000122E0 _swe_get_ayanamsa_d@8
54 35 00034EB0 _swe_get_ayanamsa_ex@20
55 36 00035590 _swe_get_ayanamsa_ex_ut@20
56 37 00035630 _swe_get_ayanamsa_name@4
57 38 00035660 _swe_get_ayanamsa_ut@8
58 39 00012310 _swe_get_ayanamsa_ut_d@8
59 3A 000356A0 _swe_get_library_path@4
60 3B 00007710 _swe_get_orbital_elements@24
61 3C 000356D0 _swe_get_planet_name@8
62 3D 00012340 _swe_get_planet_name_d@8
63 3E 0003DB80 _swe_get_tid_acc@0
64 3F 00012350 _swe_get_tid_acc_d@4
65 40 00019900 _swe_heliacal_angle@72
66 41 000199E0 _swe_heliacal_pheno_ut@40
67 42 0001A940 _swe_heliacal_ut@40
68 43 00021210 _swe_house_name@4
69 44 000213B0 _swe_house_pos@36
70 45 00012370 _swe_house_pos_d@28
71 46 00022DA0 _swe_houses@36
72 47 00022F00 _swe_houses_armc@36
73 48 000123E0 _swe_houses_armc_d@24
74 49 00012420 _swe_houses_d@24
75 4A 00023050 _swe_houses_ex@40
76 4B 00012460 _swe_houses_ex_d@28
77 4C 000111B0 _swe_jdet_to_utc@36
78 4D 000115A0 _swe_jdut1_to_utc@36
79 4E 000115F0 _swe_julday@24
80 4F 000124B0 _swe_julday_d@24
81 50 00035D10 _swe_lat_to_lmt@24
82 51 00035DA0 _swe_lmt_to_lat@24
83 52 00008370 _swe_lun_eclipse_how@24
84 53 000124E0 _swe_lun_eclipse_how_d@20
85 54 00008510 _swe_lun_eclipse_when@28
86 55 00012510 _swe_lun_eclipse_when_d@24
87 56 000094E0 _swe_lun_eclipse_when_loc@32
88 57 00009870 _swe_lun_occult_when_glob@36
89 58 0000AAD0 _swe_lun_occult_when_loc@40
90 59 0000AC70 _swe_lun_occult_where@32
91 5A 0000AD70 _swe_nod_aps@40
92 5B 00012540 _swe_nod_aps_d@36
93 5C 0000D140 _swe_nod_aps_ut@40
94 5D 00012580 _swe_nod_aps_ut_d@36
95 5E 0000D190 _swe_orbit_max_min_true_distance@32
96 5F 0000D850 _swe_pheno@24
97 60 000125C0 _swe_pheno_d@20
98 61 0000E590 _swe_pheno_ut@24
99 62 000125F0 _swe_pheno_ut_d@20
100 63 0003DB90 _swe_rad_midp@16
101 64 0003DBD0 _swe_radnorm@8
102 65 0000E630 _swe_refrac@28
103 66 00012620 _swe_refrac_d@20
104 67 0000E810 _swe_refrac_extended@48
105 68 00011800 _swe_revjul@28
106 69 00012660 _swe_revjul_d@24
107 6A 0000EA60 _swe_rise_trans@52
108 6B 00012690 _swe_rise_trans_d@40
109 6C 0000EAB0 _swe_rise_trans_true_hor@60
110 6D 0003DC30 _swe_set_astro_models@4
111 6E 0003DC80 _swe_set_delta_t_userdef@8
112 6F 00035DF0 _swe_set_ephe_path@4
113 70 000126E0 _swe_set_ephe_path_d@4
114 71 00036010 _swe_set_jpl_file@4
115 72 00012700 _swe_set_jpl_file_d@4
116 73 0000F9A0 _swe_set_lapse_rate@8
117 74 000360C0 _swe_set_sid_mode@20
118 75 00012720 _swe_set_sid_mode_d@12
119 76 0003DCC0 _swe_set_tid_acc@8
120 77 00012750 _swe_set_tid_acc_d@4
121 78 00036200 _swe_set_topo@24
122 79 00012770 _swe_set_topo_d@12
123 7A 0003DD10 _swe_sidtime0@24
124 7B 000127B0 _swe_sidtime0_d@16
125 7C 0003E170 _swe_sidtime@8
126 7D 000127F0 _swe_sidtime_d@8
127 7E 0000F9C0 _swe_sol_eclipse_how@24
128 7F 00012820 _swe_sol_eclipse_how_d@20
129 80 0000FBC0 _swe_sol_eclipse_when_glob@28
130 81 00012850 _swe_sol_eclipse_when_glob_d@24
131 82 00010D60 _swe_sol_eclipse_when_loc@32
132 83 00012880 _swe_sol_eclipse_when_loc_d@28
133 84 00010EB0 _swe_sol_eclipse_where@24
134 85 000128B0 _swe_sol_eclipse_where_d@20
135 86 0003E210 _swe_split_deg@32
136 87 000128E0 _swe_split_deg_d@28
137 88 00036290 _swe_time_equ@16
138 89 00012910 _swe_time_equ_d@12
139 8A 0001AF30 _swe_topo_arcus_visionis@80
140 8B 00011A80 _swe_utc_time_zone@60
141 8C 00011BC0 _swe_utc_to_jd@40
142 8D 000363F0 _swe_version@4
143 8E 0001B010 _swe_vis_limit_mag@36
Dump of file swedll64.dll
File Type: DLL
Section contains the following exports for swedll64.dll
00000000 characteristics
57485260 time date stamp Fri May 27 06:57:52 2016
0.00 version
1 ordinal base
143 number of functions
143 number of names
ordinal hint RVA name
1 0 0000C8F9 swe_azalt
2 1 0001B7BC swe_azalt_d
3 2 0000CBC4 swe_azalt_rev
4 3 0001B82B swe_azalt_rev_d
5 4 0001BA44 swe_calc
6 5 0001AAF2 swe_calc_d
7 6 0001C390 swe_calc_ut
8 7 0001AB38 swe_calc_ut_d
9 8 0001E637 swe_close
10 9 0001AC18 swe_close_d
11 A 00035707 swe_cotrans
12 B 0001AE85 swe_cotrans_d
13 C 00035864 swe_cotrans_sp
14 D 0001AEC4 swe_cotrans_sp_d
15 E 0003F950 swe_cs2degstr
16 F 0001B4DF swe_cs2degstr_d
17 10 0003F6B2 swe_cs2lonlatstr
18 11 0001B49A swe_cs2lonlatstr_d
19 12 0003F42C swe_cs2timestr
20 13 0001B464 swe_cs2timestr_d
21 14 0003F14F swe_csnorm
22 15 0001B2A5 swe_csnorm_d
23 16 0003F2E1 swe_csroundsec
24 17 0001B3A0 swe_csroundsec_d
25 18 0003F362 swe_d2l
26 19 0001B3B9 swe_d2l_d
27 1A 0004BDC0 swe_date_conversion
28 1B 0001AF8F swe_date_conversion_d
29 1C 0003F3A6 swe_day_of_week
30 1D 0001B43D swe_day_of_week_d
31 1E 000352B6 swe_deg_midp
32 1F 00035190 swe_degnorm
33 20 0001AF57 swe_degnorm_d
34 21 0003C2DA swe_deltat
35 22 0001AD55 swe_deltat_d
36 23 0003C275 swe_deltat_ex
37 24 0003F1DF swe_difcs2n
38 25 0001B32F swe_difcs2n_d
39 26 0003F189 swe_difcsn
40 27 0001B2BE swe_difcsn_d
41 28 0003F219 swe_difdeg2n
42 29 0001B350 swe_difdeg2n_d
43 2A 0003F1AA swe_difdegn
44 2B 0001B2DF swe_difdegn_d
45 2C 0003F27D swe_difrad2n
46 2D 00030D8F swe_fixstar
47 2E 0001AB7E swe_fixstar_d
48 2F 000333F0 swe_fixstar_mag
49 30 000332D3 swe_fixstar_ut
50 31 0001ABCB swe_fixstar_ut_d
51 32 0001A37D swe_gauquelin_sector
52 33 0002441D swe_get_ayanamsa
53 34 0001ACDD swe_get_ayanamsa_d
54 35 000237FA swe_get_ayanamsa_ex
55 36 00024348 swe_get_ayanamsa_ex_ut
56 37 0003430E swe_get_ayanamsa_name
57 38 00024461 swe_get_ayanamsa_ut
58 39 0001AD19 swe_get_ayanamsa_ut_d
59 3A 0001B9EF swe_get_library_path
60 3B 00017DB0 swe_get_orbital_elements
61 3C 00033B2E swe_get_planet_name
62 3D 0001AC73 swe_get_planet_name_d
63 3E 0003D71F swe_get_tid_acc
64 3F 0001AF03 swe_get_tid_acc_d
65 40 0005F7A0 swe_heliacal_angle
66 41 00060008 swe_heliacal_pheno_ut
67 42 00066276 swe_heliacal_ut
68 43 0004F408 swe_house_name
69 44 0005572E swe_house_pos
70 45 0001B208 swe_house_pos_d
71 46 0004D550 swe_houses
72 47 0004ED73 swe_houses_armc
73 48 0001B19F swe_houses_armc_d
74 49 0001B0C8 swe_houses_d
75 4A 0004D71B swe_houses_ex
76 4B 0001B131 swe_houses_ex_d
77 4C 0004CD98 swe_jdet_to_utc
78 4D 0004D4C3 swe_jdut1_to_utc
79 4E 0004BE8D swe_julday
80 4F 0001AFE3 swe_julday_d
81 50 00034DC5 swe_lat_to_lmt
82 51 00034D49 swe_lmt_to_lat
83 52 0000D706 swe_lun_eclipse_how
84 53 0001B632 swe_lun_eclipse_how_d
85 54 0000E4F0 swe_lun_eclipse_when
86 55 0001B678 swe_lun_eclipse_when_d
87 56 0000FCFE swe_lun_eclipse_when_loc
88 57 00005745 swe_lun_occult_when_glob
89 58 00007764 swe_lun_occult_when_loc
90 59 0000152C swe_lun_occult_where
91 5A 00013618 swe_nod_aps
92 5B 0001B8F4 swe_nod_aps_d
93 5C 000178E1 swe_nod_aps_ut
94 5D 0001B95E swe_nod_aps_ut_d
95 5E 00019BE1 swe_orbit_max_min_true_distance
96 5F 0001034F swe_pheno
97 60 0001B6C5 swe_pheno_d
98 61 000117B2 swe_pheno_ut
99 62 0001B70B swe_pheno_ut_d
100 63 0003531F swe_rad_midp
101 64 00035223 swe_radnorm
102 65 0000CDA8 swe_refrac
103 66 0001B751 swe_refrac_d
104 67 0000D0F3 swe_refrac_extended
105 68 0004C107 swe_revjul
106 69 0001B03A swe_revjul_d
107 6A 00011BB9 swe_rise_trans
108 6B 0001B876 swe_rise_trans_d
109 6C 00011C30 swe_rise_trans_true_hor
110 6D 00040124 swe_set_astro_models
111 6E 0003D7BB swe_set_delta_t_userdef
112 6F 0001E858 swe_set_ephe_path
113 70 0001AC33 swe_set_ephe_path_d
114 71 0001EF70 swe_set_jpl_file
115 72 0001AC53 swe_set_jpl_file_d
116 73 0000D0DD swe_set_lapse_rate
117 74 0002361D swe_set_sid_mode
118 75 0001AC97 swe_set_sid_mode_d
119 76 0003D744 swe_set_tid_acc
120 77 0001AF2B swe_set_tid_acc_d
121 78 0003434D swe_set_topo
122 79 0001AE31 swe_set_topo_d
123 7A 0003EB52 swe_sidtime
124 7B 0003E4AD swe_sidtime0
125 7C 0001AD91 swe_sidtime0_d
126 7D 0001ADF5 swe_sidtime_d
127 7E 0000289F swe_sol_eclipse_how
128 7F 0001B549 swe_sol_eclipse_how_d
129 80 000039B9 swe_sol_eclipse_when_glob
130 81 0001B5E5 swe_sol_eclipse_when_glob_d
131 82 00007562 swe_sol_eclipse_when_loc
132 83 0001B58F swe_sol_eclipse_when_loc_d
133 84 00001430 swe_sol_eclipse_where
134 85 0001B503 swe_sol_eclipse_where_d
135 86 0003FAAA swe_split_deg
136 87 0001B3E0 swe_split_deg_d
137 88 00034A90 swe_time_equ
138 89 0001B08E swe_time_equ_d
139 8A 0005F054 swe_topo_arcus_visionis
140 8B 0004C3AD swe_utc_time_zone
141 8C 0004C7E3 swe_utc_to_jd
142 8D 0001B9D0 swe_version
143 8E 0005E666 swe_vis_limit_mag