53歳限界プログラマの憂鬱

SU/CAR-ST-APplication-cellsから派生したプログラマのブログ

来訪ありがとうございます
シストレツールを自作してました
自分用の記事が多いのであまり役には立たないブログでした

f:id:sucar:20150414193802p:plain

自作システム詳細目次

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