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
改めて開発日記スタート(どっちかというと自分用備忘録)1 msys2 DL
何か迷走していますが、自分用と割り切って、株のシストレツールの開発経緯を自分用の備忘録として書いていきます
まずはMSYS2のインストール
ここの上に2つあるけど
-i686- の方が32bit
-x86_64- の方が64bit
自分は64bitの方が使いたいので-x86_64- の方を落としました
20161025版です ただ もう一つのPCには2016の9月版が入ってます
もっともMSYS2は pacman コマンドで随時最新版に更新できるのであまり気にしなくてもいいかも
また初代のMSYSというか、これとは違うMSYSもあって
MinGW | Minimalist GNU for Windows
ここからDL可能です
現在の私のシステムはMingw+初代MSYSで動いてるんだけど、将来を考えてMSYS2環境に移行をしようかと・・・
まあその先はLinuxで動かしちゃえなんですけどw
とりあえずDLしてインストールしました(インストールはそんな迷うところはないので手順とかは省略 単に落としたexeを実行すればよいので)
もう一つのPCには既にいろいろ環境構築されているんだけど、一応備忘録のため再度手順を纏めておこうと
とりあえずこの記事でMSYS2のDLとインストール終了
あと、デスクトップにショートカットおきたい派なので
\msys64\mingw64.exeをデスクトップにショートカット作成しとく
できたショートカットをクッリクして起動したら
左上のMのアイコンクリックするとメニューがでるので options -> text
で好きなフォントを選べばよろし
とりあえずここまで
kona linux でswapがマウントされていなかった件(UUID編
一つ前の記事が少し中途半端だったので、続編
要は「インストール後swapがマウントされてなかったら自分で設定してね」ということで
# mkswap /dev/sda4 または $ sudo mkswap /dev/sda4
(/dev/sda4 はswapにしたいパーテーション)でswapを作り
/etc/fstab を編集して
/dev/sda4 swap swap defaults 0 0
と書いとけばいいよ ってことです
ただ、現在は/dev/xxxx ではなく UUID=xxxxxx で記述するのが推奨されているらしい
で、UUIDの調べ方ですが、
# blkid または $ sudo blkid
で表示されるのでそれを使えばOK
で(私の環境の場合)は
UUID=a4c9b36e-ce37-4c02-96ce-5e948dd77477 none swap sw 0 0
と書いたらOKだった
実はそもそもインストール直後の/etc/fstabがなぜか
UUID=swap none swap sw 0 0
ってなってて????
本来UUIDが書かれる部分がswapと書かれたのがマウントされない原因だったと・・・
などと偉そうに書いてますが、正直なところUUIDって何??? とググって勉強になったというわけです
ただひとつわからないことがあって
UUIDを使わない書式だと
/dev/sda4 swap swap defaults 0 0
UUIDを使う書式だと
UUID=a4c9b36e-ce37-4c02-96ce-5e948dd77477 none swap sw 0 0
と赤字の部分が異なるのだが????
この辺がよくわからないのですが、とりあえず、現在推奨のUUID記述を見様見真似でマスターしました ということで・・・