6 プログラムメイン部分先行公開
改めて開発日記
は、1~5までで、いろいろインストールしてるだけですが、別のPCである程度進んでいるので、記念に(なんの記念だ?w)
にメイン部分を公開(突っ込みはなしで)
とりあえず
/* * 業種別を取り込む準備⇒廃止 * 分割処理 1/500まで拡張 * 分割時の代金バグを修正 * mt_rule対応 * 表示用dispda[][] * 2016/6/25 出力をdispda[][]⇒owa[][] * simxp7->8 * 出力を根本的に変える(一つずれる) * * 2016/8/11 * char* c_cfg=".\\code\\code.cfg"; を * SHIJOUが定義されていたら変更する * * 2016/09/10 * Zday=\t%d\t Yson=\t%5.2f * * 2016/11/05 * msys2 移行 * UTF-8 LF */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdint.h> #include "sub/env.h" #include "sub/check0.h" #include "sub/read_kd2.h" #include "sub/matome.h" #include "sub/sngrx.h" #include "sub/common_y.h" #include "sub/output.h" uint8_t dt[DATEMAX][11]; //use output uint8_t code[DATAMAX][8]; //use output main int gys[DATAMAX]; double hjm[DATAMAX][DATEMAX]; //use output double tak[DATAMAX][DATEMAX]; //use output double yas[DATAMAX][DATEMAX]; //use output double owa[DATAMAX][DATEMAX]; //use output double da[DATAMAX][DATEMAX];//daiから変更 int bnk[DATAMAX]; //株式分割 double dispda[DATAMAX][DATEMAX];//表示用のdaikin(分割バグ無関係)// output //で使用 double suii[DATEMAX][XDAYMAX2]; //購入後の損益推移(安値→高値) // use output double pfm[100]; double pfmall[100][100]; int ck[DATAMAX][DATEMAX]; //フラグ 1 int CodeMax; int DtMax; int Jkc=0; double Pmax[PM]; int Lr[PM]; int Ms[PM]; ////// #include "mt/mt_rule.c" ////// #ifndef DAYSON double Yson=-30.0; //損切% 必要に応じて変える int Zday=5; //損切ライン 必要に応じて変える #endif int main (void) { //2016/8/11 市場切り替え対応 #ifdef SHIJOU uint8_t* c_cfg=SHIJOU; #else uint8_t* c_cfg="./code/code.cfg"; #endif // uint8_t* d_cfg="data.cfg"; uint8_t* rksg="./output/rksg.txt"; //利確損切を別ファイルに uint8_t filename[40]; uint8_t buf[40]; double brk; double pmax; int i,k,n; //int lr,ms; FILE *fp; //code fileの読み込み fp = fopen(c_cfg, "rt"); if ( fp ){ i=0; while ( fgets(buf,40,fp)!=NULL) { n=check0(buf); if (n!=0) { strcpy(code[i],buf); //printf("%d %s \n",i,code[i]); i++; } } CodeMax=i; } fclose(fp); //data file の読み込み fp = fopen(d_cfg, "rt"); if ( fp ){ // d_cfg data読込作業 i=0; while ( fgets(filename,40,fp)!=NULL) { n=check0(filename); if (n!=0) { //#コメント以外 @は除外 read_kd2(filename,i); i++; } } DtMax=i; } maxxday(); minxday(); //calc25(); calc(); check(); output(); fp=fopen(rksg,"w"); fprintf(fp,"----\tXd0\t%d\t----\tXdd\t%d\t-----\t%d\t---------------------------\n",Xd0,Xdd,DtMax); fprintf(fp,"利確\t損切\n"); matome(); pmax=-100.0; for (k=0;k<PM;k++) { if (Pmax[k]!=pmax && Lr[k]!=0){ fprintf(fp,"%d\t%d\t%6.3lf\t%8.2lf\n",Lr[k]+1,-Ms[k]-1,Pmax[k],Pmax[k]*Jkc); pmax=Pmax[k]; } } fclose(fp); }
こんな感じ
意外にシンプルかもね
※グローバル変数使いまくりだけど、宣言はサブの個別ファイルでやったほうがいいのかもしれない
分割コンパイルに全然慣れていないのを露呈w