예제 #1
0
 def wrapper_(self):
     items_ = 0
     results_tempo = []
     population_tempo = []
     while (items_ < self.size_population):
         self.reset_value()
         self.pnl_dict = {}
         Initialize.__call__(self)
         self.optimize_param(
         )  # reinitialize parameters to optimize with all possible choices
         func(self)
         self.pnl_()
         if (not bool(self.pnl_dict)):
             continue
         if self.pnl_dict[self.nb_trades_] < self.min_results:
             continue
     # if self.pnl_dict[self.fitness_function] > self.fitness_level:
     #    return self.pnl_dict,self.op_param
         elif bool(self.pnl_dict) and self.pnl_dict[
                 self.nb_trades_] >= self.min_results:
             results_tempo.append(self.pnl_dict)
             population_tempo.append(self.list_to_dict(self.op_param))
             if (results_tempo[items_][self.nb_trades_] > 150):
                 raise Exception("Error with the number of trades")
             items_ += 1
     self.results_pop = results_tempo.copy()
     self.population = population_tempo.copy()
예제 #2
0
    def main_process(self):
        """
        Getting AFM related parameters. 2 cases here.
        1, called by AFM directly:
           Alerts Delivery is coupled with AFM. So it is better to call by AFM. Then we can get parameters directly from AFM via self.params
        2, called via REST API.
           in case failure when called by AFM, we also support the REST API while we can manually trigger this. And getting params from REST API Body.
        :return:
        """
        try:
            # Checking the cancel status from previous step.
            _cancel_flag = self.params.get("cancel_flag", False)
            if _cancel_flag:
                return self.params.get("message")

            self.logger.debug("The context is: %s" % str(self.dumper_context))
            init = Initialize(self.dumper_context)
            afm_params = init.init_process()
            _cycle_key = afm_params.get("cycleKey")

            _retailer_name = self.capacity.get_retailer_schema_name(
                retailer_key=afm_params["retailerKey"])
            self.dumper_context["retailer_name"] = _retailer_name
            self.dumper_context["schema"] = _retailer_name
            self.dumper_context["cycle_key"] = _cycle_key

            self._layout_payload = self._get_layout()
            self._process(afm_params)

        except Warning as e:
            return str(e)

        except Exception as e:
            self.logger.warning(str(e))
            raise
예제 #3
0
def main():
    # デバッグ
    starttime = datetime.now()
    print(starttime)
    # 基準年月日時分を取得する。
    standardTime = starttime.strftime('%Y%m%d%H%M')
    # 環境変数を取得する。
    homeDir = os.environ["APPMONEYTRADE"]

    # log用の文字列準備
    exefile = os.path.basename(__file__)
    pid = os.path.basename(__file__)[0:4]  # 機能IDの取得

    # 1時的に環境パスを追加する。
    sys.path.append(homeDir)
    from initialize import Initialize

    # 初期化クラスのオブエクトか
    object_dict = {}
    object_dict['pid'] = pid
    Initializer = Initialize.Initialize(object_dict)

    # utilクラスのオブジェクト取得
    utilClass = Initializer.utilClass
    # daoクラスのオブジェクトを取得する。
    daoClass = Initializer.daoClass
    # メール送信クラスを取得する
    MASSClass = Initializer.MASSClass
    object_dict['util'] = utilClass
    object_dict['dao'] = daoClass
    object_dict['mass'] = MASSClass
예제 #4
0
def container():
    c = Config()
    database, websites = c.get_configuration()

    i = Initialize()
    browsers, dns_types = i.get_initialization()

    operation_system = platform.system()
    if operation_system == "Windows":
        system = Windows()
    elif operation_system == "Linux":
        system = Linux()

    resolver, recursive = system.get_dns_metadata()

    return database, websites, browsers, dns_types, resolver, recursive, system
def AgentProgram(N):
    state = Initialize(N)
    total_conflicts = 0
    for col in range(N):
        row = np.where(state[:, col] == 1)[0][0]
        conflicts = np.sum(state[row, :])
        k = col - row
        conflicts += np.sum(np.diag(state, k))

        k = N - 1 - col - row
        conflicts += np.sum(np.diag(np.fliplr(state), k))

        conflicts -= 3
        total_conflicts = total_conflicts + conflicts
    col = 0
    no_update = 0
    for i in range(1000):
        if GoalTest(state):
            return total_conflicts
        row = np.where(state[:, col] == 1)[0][0]
        total_conflicts = Update(state, col, total_conflicts)
        if no_update == N:
            total_conflicts = RandomRestart(state=state,col=col,\
                            total_conflicts=total_conflicts)
            no_update = 0
        else:
            if row == np.where(state[:, col] == 1)[0][0, 0]:
                no_update += 1
            else:
                no_update = 0
        col = (col + 1) % N
    return total_conflicts
예제 #6
0
 def _chi_initialize(self):
     if continuation:
         self.current_state.chi = np.load(
             os.path.join(output_dir_path,
                          f'finalChiFieldData{Comment}{startIter}.npy'))
         self.current_state.chiPi = np.load(
             os.path.join(output_dir_path,
                          f'finalChiPiFieldData{Comment}{startIter}.npy'))
     else:
         m2Chi = Model.dd_chichi_potential(phi0, chi0) - 2. * (
             pow(d_phi0, 2) / 2. + Model.potential(phi0, chi0)) / (3. * pow(
                 MPl, 2.)) - Model.dd_non_canonical_multiplier(chi0) * pow(
                     d_phi0, 2) / 2.
         self.current_state.chi, self.current_state.chiPi = Initialize.initialize_field_non_zero_modes(
             m2Chi)
         self.current_state.chi = np.array(self.current_state.chi)
         self.current_state.chiPi = np.array(self.current_state.chiPi)
         self.current_state.chi += chi0
         self.current_state.chiPi = Initialize.mod_chi_pi_ini(
             self.current_state.chiPi, self.current_state.chi)
         self.current_state.chiPi += d_chi0
예제 #7
0
def main():
    IN_initialize = Initialize()
    IN_reporting = Reporting()
    IN_audits = Audits()

    Output = []

    analytics = IN_initialize.initialize_analyticsreporting()
    response = IN_reporting.get_report(analytics)
    management_get = IN_reporting.get_management(analytics)
    useful_values = IN_reporting.print_response(response)
    accounts = IN_reporting.get_gtm(analytics)

    print "######"
    IN_audits.check_siteSearch(useful_values)
    print "_______"
    Output.append(IN_audits.check_medium(useful_values))
    #check_totalValue()
    print "_______"
    IN_audits.check_customDimensions(management_get)
    print "_______"
    #url = raw_input('Enter URL for self-Referral check: ')
    IN_audits.check_selfReferral('yandex', useful_values)
    print "_______"
    IN_audits.check_eventTracking(useful_values)
    print "_______"
    Output.append(IN_audits.check_adwordsLink(management_get))
    print "_______"
    IN_audits.check_gtm(accounts)
    print "_______"
    IN_audits.check_goals(management_get)
    print "_______"
    IN_audits.check_customMetrics(management_get)
    print "######"
    print Output
    with open('data.json', 'w') as djson:
        json.dump(Output, djson)
예제 #8
0
def main():
    # 環境変数を取得する。
    homeDir = os.environ["APPMONEYTRADE"]

    # log用の文字列準備
    pid = os.path.basename(__file__)[0:3]  # 機能IDの取得

    #引数の取得
    args = sys.argv
    condTime = args[1]

    # 1時的に環境変数を追加する。
    sys.path.append(homeDir)
    from initialize import Initialize

    # 初期化クラスのオブエクトか
    object_dict = {}
    object_dict['pid'] = pid
    Initializer = Initialize.Initialize(object_dict)

    # utilクラスのオブジェクト取得
    utilClass = Initializer.utilClass
    # daoクラスのオブジェクトを取得する。
    dao = Initializer.daoClass
    # メール送信クラスを取得する
    MASSClass = Initializer.MASSClass
    object_dict['util'] = utilClass
    object_dict['dao'] = dao
    object_dict['mass'] = MASSClass

    # jsonparseクラスのオブジェクト取得
    jsonClass = Initializer.class_ins('JsonParse', object_dict)

    # bitflyyerApiクラスを取得
    bitflyerClass = Initializer.class_ins('BitflyerApi', object_dict)

    # configファイルから情報を抜き出す.
    inifile = utilClass.inifile

    # 呼び出す仮想通貨の種類を洗い出す
    coinlist = utilClass.coinlistGet()
    cointype = utilClass.cointypeGet()

    # 前回実行時間を取得する。
    f = open(homeDir + inifile.get(pid, 'exetime'), "r")
    exetime = f.read()[0:12]
    if exetime == condTime:
        # 前回と同じ時間なので処理しない。
        utilClass.logging(
            pid + ' ' + condTime +
            ' is skip for before this time has done arleady', 2)
        return

    f.close()

    # pueryの固定文字列をs¥抜き出す
    pueryStayStr = inifile.get('url', 'productcode')

    # 呼び出すAPIの種類を探す
    board = inifile.get('apitype', 'board')
    executions = inifile.get('apitype', 'executions')

    # apiurlを取得する。
    apiurl = inifile.get('url', 'futuredatabefore')

    # qyeryで空文字のやつを取得する。
    brankcoin = inifile.get('coin', 'nonpuery')

    # ファイルパスを取得する。
    outPath = inifile.get('filepath', 'inoutpath')

    # このバッチ処理の開始log
    utilClass.logging(pid + ' ' + condTime, 0)

    # コインの数だけ呼び出す。
    for coin in coinlist:
        # log
        logstr = ''
        logstr = 'call webAPI by ' + coin
        utilClass.logging(logstr, 0)

        # ファイルパスを取得する。
        filepath = homeDir + outPath + 'board' + '/' + condTime + coin

        puery = ''
        if coin != brankcoin:
            puery = pueryStayStr

        # webapiを呼び出す。
        josnStr = bitflyerClass.boardApi(apiurl, coin, puery, board)

        #ファイルを保存する。
        savaFile(josnStr, filepath)

        # ファイルパスを再作成する。
        filepath = homeDir + outPath + 'executions' + '/' + condTime + coin

        # webapiを呼び出す。
        josnStr = bitflyerClass.boardApi(apiurl, coin, puery, executions)

        #ファイルを保存する
        savaFile(josnStr, filepath)

        #log
        utilClass.logging(logstr, 1)

    # jsonFileの読み出し。
    for coin in coinlist:
        # cointypeの取得
        cointypeStr = cointype[coin]

        #filepath
        filepath = homeDir + outPath + 'board' + '/' + condTime + coin + '.json'

        # log
        logstr = ''
        logstr = 'read json by ' + filepath
        utilClass.logging(logstr, 0)

        # ファイルの存在チェック
        if not os.path.exists(filepath):
            logstr = 'file not found:' + filepath
            utilClass.loggingError(logstr)
            return

        # json読み込みとパース
        resultDict = jsonClass.boardParse(filepath)

        # boradの挿入を行う。
        boardInsert(resultDict, pid, cointype[coin], condTime, dao)

        # ファイルを消する。
        os.remove(filepath)

        # filepathの再作成
        filepath = homeDir + outPath + 'executions' + '/' + condTime + coin + '.json'

        # log
        utilClass.logging(logstr, 1)
        logstr = ''
        logstr = 'read json by ' + filepath
        utilClass.logging(logstr, 0)

        # ファイルの存在チェック
        if not os.path.exists(filepath):
            logstr = 'file not found:' + filepath
            utilClass.loggingError(logstr)
            return

        # json読み込みとパース
        resultDict = jsonClass.executionsParse(filepath)

        # executionsの挿入を行う
        executionsInsert(resultDict, pid, cointype[coin], condTime, dao)
        # ファイルを消す。
        os.remove(filepath)

        # log
        utilClass.logging(logstr, 1)

    # 最後に実行時間を更新する。
    f = open(homeDir + inifile.get(pid, 'exetime'), "w")
    f.write(condTime)

    # このバッチ処理の終了log
    utilClass.logging(pid + ' ' + condTime, 1)
예제 #9
0
def main():
	# デバッグ
	starttime = datetime.now()
	print(starttime)
	# 基準年月日時分を取得する。
	standardTime = starttime.strftime('%Y%m%d')
	# 環境変数を取得する。
	homeDir = os.environ["APPHORSE"]

	# log用の文字列準備
	exefile = os.path.basename(__file__)
	pid = os.path.basename(__file__)[:-3] # 機能IDの取得

        # 1時的に環境パスを追加する。
	sys.path.append(homeDir)
	from initialize import Initialize

	# 初期化クラスのオブエクトか
	object_dict = {}
	object_dict['pid'] = pid
	Initializer = Initialize.Initialize(object_dict)

	# utilクラスのオブジェクト取得
	utilClass = Initializer.utilClass
	# daoクラスのオブジェクトを取得する。
	daoClass = Initializer.daoClass
	# メール送信クラスを取得する
	MASSClass = Initializer.MASSClass
	object_dict['util'] = utilClass
	object_dict['dao'] = daoClass
	object_dict['mail'] = MASSClass

	# レース情報更新クラスを取得する
	raceUpdateClass = Initializer.class_ins('RaceInfoUpdate',object_dict)

	# データマイニングクラスを取得する
	dataMiningClass = Initializer.class_ins('DataMining',object_dict)


	# configファイルから情報を抜き出す.
	inifile = utilClass.inifile

	# メソッド名取得
	methodname = sys._getframe().f_code.co_name
	# 開始ログ出力
	utilClass.logging('[' + methodname + ']',0)


	# 基準日以降に開催されるレースIDを全て取得する
	where =["AND RACE_DATE >= '%s'"% standardTime," ORDER BY RACE_DATE ASC"]
	raceIdList =  daoClass.selectQuery(where,'selectPostRace')

	# レースIDを一件づつ処理する
	for race_id in raceIdList:
		raceId = race_id[0] # レースID 取得
		utilClass.logging(raceId + 'is started',2) # レースID 取得

		# レース情報更新サービス呼び出し
		result = raceUpdateClass.execute(raceId,1)
		if result['returnCode'] != 0:
			if result['returnCode'] == 9:
				utilClass.loggingError(raceId + 'is faled in raceInfoUpdate\n' + result['msg']) 
				break
			else:
				utilClass.loggingWarn(raceId + 'is warned in raceInfoUpdate\n' + result['msg'])
				continue

		result = raceUpdateClass.execute(raceId,2)
		if result['returnCode'] != 0:
			if result['returnCode'] == 9:
				utilClass.loggingError(raceId + 'is faled in raceInfoUpdate\n' + result['msg']) 
				break
			else:
				utilClass.loggingWarn(raceId + 'is warned in raceInfoUpdate\n' + result['msg'])
				continue

		# データマイニングサービス呼び出し
		result = dataMiningClass.execute(raceId,2)
		if result['returnCode'] != 0:
			if result['returnCode'] == 9:
				utilClass.loggingError(raceId + 'is faled in dataMining\n' + result['msg']) 
				break
			else:
				utilClass.loggingWarn(raceId + 'is warned in dataMining\n' + result['msg'])
				continue

		utilClass.logging(raceId + 'is ended',2)


	# 終了ログ
	utilClass.logging('[' + methodname + ']',0)
예제 #10
0
    def _initalize(self, S, N, T, model):
        try:
            NT = N * T

            #initialize
            self.beta, self.delta, self.xi, self.gamma, self.z, self.u, self.eta, self.alpha, self.sigma_alpha_sqr, self.sigma_v_sqr = Initialize(
            ).generate(model, self.x, self.pi, self.w)

            all_beta = np.zeros([S, self.x.shape[1]])
            all_xi = np.zeros([S, self.pi.shape[1]])
            all_delta = np.zeros([S, self.pi.shape[1]])
            all_z = np.zeros([S, self.w.shape[1]])
            all_gamma = np.zeros([S, self.w.shape[1]])
            all_sigma_v_sqr = np.zeros([
                S,
            ])
            all_sigma_alpha_sqr = np.zeros([
                S,
            ])
            all_alpha = np.zeros([S, N])
            all_eta = np.zeros([S, N])
            all_u = np.zeros([S, NT])

            return all_beta, all_xi, all_delta, all_z, all_gamma, all_sigma_v_sqr, all_sigma_alpha_sqr, all_alpha, all_eta, all_u
        except:
            raise NotImplementedError(self._error_msg('initalize'))
예제 #11
0
class Reporting:
    IN_initialize = Initialize()
    VIEW_ID = IN_initialize.VIEW_ID
    ACCOUNT_ID = IN_initialize.ACCOUNT_ID
    WEB_PROPERTY_ID = IN_initialize.WEB_PROPERTY_ID

    def get_gtm(self, analytics):
        gtm = analytics['gtm']
        accounts = gtm.accounts().list().execute()
        return accounts

    def get_management(self, analytics):
        #API V4 does not have management resource so we use V3 for this

        analytics_v3 = analytics['analytics_v3']

        custom_dimensions = analytics_v3.management().customDimensions().list(
            accountId=self.ACCOUNT_ID,
            webPropertyId=self.WEB_PROPERTY_ID).execute()

        custom_metrics = analytics_v3.management().customMetrics().list(
            accountId=self.ACCOUNT_ID,
            webPropertyId=self.WEB_PROPERTY_ID).execute()

        adwords_linked = analytics_v3.management().webPropertyAdWordsLinks(
        ).list(accountId=self.ACCOUNT_ID,
               webPropertyId=self.WEB_PROPERTY_ID).execute()

        goals = analytics_v3.management().goals().list(
            accountId=self.ACCOUNT_ID,
            webPropertyId=self.WEB_PROPERTY_ID,
            profileId=self.VIEW_ID).execute()

        #print json.dumps(custom_metrics,sort_keys=True,indent=2)

        customMetrics_list = []

        for metric in custom_metrics.get('items', []):
            metric_name = metric.get('name')
            print metric_name
            customMetrics_list.append(metric_name)

        customDimensions_list = []
        for dimension in custom_dimensions.get('items', []):
            Cdimension_name = dimension.get('name')
            customDimensions_list.append(Cdimension_name)

        goals_list = []
        for goal in goals.get('items', []):
            goal_name = goal.get('name')
            goals_list.append(goal_name)

        managemnt_get = {
            'customDimensions_list': customDimensions_list,
            'adwords_linked': adwords_linked,
            'goals_list': goals_list,
            'customMetrics_list': customMetrics_list
        }

        return managemnt_get

    def get_report(self, analytics):
        """Using the Analytics Service Object to query the Analytics Reporting API V4.
    """
        #VIEW_ID = IN_initialize.VIEW_ID

        analytics_v4 = analytics['analytics_v4']

        report = analytics_v4.reports().batchGet(
            body={
                'reportRequests': [{
                    'viewId':
                    self.VIEW_ID,
                    'dateRanges': [{
                        'startDate': '7daysAgo',
                        'endDate': 'today'
                    }],
                    'metrics': [{
                        'expression': 'ga:searchSessions'
                    }, {
                        'expression': 'ga:totalEvents'
                    }, {
                        'expression': 'ga:totalValue'
                    }]
                }, {
                    'viewId':
                    self.VIEW_ID,
                    'dateRanges': [{
                        'startDate': '7daysAgo',
                        'endDate': 'today'
                    }],
                    'dimensions': [{
                        'name': 'ga:fullReferrer'
                    }, {
                        'name': 'ga:medium'
                    }]
                }]
            }).execute()

        return report

    def print_response(self, response):
        """Parses and prints the Analytics Reporting API V4 response"""
        fullReferrer_list = []
        medium_list = []
        for report in response.get('reports', []):
            columnHeader = report.get('columnHeader', {})
            dimensionHeaders = columnHeader.get('dimensions', [])
            metricHeaders = columnHeader.get('metricHeader',
                                             {}).get('metricHeaderEntries', [])
            rows = report.get('data', {}).get('rows', [])

            for row in rows:
                dimensions = row.get('dimensions', [])
                dateRangeValues = row.get('metrics', [])

                for header, dimension in zip(dimensionHeaders, dimensions):
                    #global fullReferrer_list
                    if (header == 'ga:fullReferrer'):
                        fullReferrer_list.append(dimension)
                    if (header == 'ga:medium'):
                        #global medium_list
                        medium_list.append(dimension)
                    #print header + ': ' + dimension

                for i, values in enumerate(dateRangeValues):
                    #print 'Date range (' + str(i) + ')'
                    for metricHeader, value in zip(metricHeaders,
                                                   values.get('values')):
                        #print metricHeader.get('name') + ': ' + value
                        if (metricHeader.get('name') == 'ga:searchSessions'):
                            #global searchSessions
                            searchSessions = value
                        if (metricHeader.get('name') == 'ga:totalEvents'):
                            #global totalEvents
                            totalEvents = value
                        if (metricHeader.get('name') == 'ga:totalValue'):
                            #global totalValue
                            totalValue = value

        useful_values = {
            'searchSessions': searchSessions,
            'totalEvents': totalEvents,
            'totalValue': totalValue,
            'fullReferrer_list': fullReferrer_list,
            'medium_list': medium_list
        }
        return useful_values
예제 #12
0
def main():
    # デバッグ
    starttime = datetime.now()
    print(starttime)
    # 基準年月日時分を取得する。
    standardTime = starttime.strftime('%Y%m%d')
    # 環境変数を取得する。
    homeDir = os.environ["APPHORSE"]

    # log用の文字列準備
    exefile = os.path.basename(__file__)
    pid = os.path.basename(__file__)[:-3]  # 機能IDの取得

    # 1時的に環境パスを追加する。
    sys.path.append(homeDir)
    from initialize import Initialize

    # 初期化クラスのオブエクトか
    object_dict = {}
    object_dict['pid'] = pid
    Initializer = Initialize.Initialize(object_dict)

    # utilクラスのオブジェクト取得
    utilClass = Initializer.utilClass
    # daoクラスのオブジェクトを取得する。
    daoClass = Initializer.daoClass
    # メール送信クラスを取得する
    MASSClass = Initializer.MASSClass
    object_dict['util'] = utilClass
    object_dict['dao'] = daoClass
    object_dict['mail'] = MASSClass

    # 各クラスのオブジェクト化
    # JRA過去情報取得サービス
    JraPastInfoGetClass = Initializer.class_ins('JraPastInfoGet', object_dict)
    # JRA今週末情報取得サービス
    JraPostInfoGetClass = Initializer.class_ins('JraPostInfoGet', object_dict)
    # スピード指数計算
    AnalyzeClass = Initializer.class_ins('RaceAnalyze', object_dict)
    # 騎手指数計算
    JocAnalyzeClass = Initializer.class_ins('JocAnalyze', object_dict)
    # 予想指数算出
    PostForecastClass = Initializer.class_ins('PostRaceForecast', object_dict)

    # configファイルから情報を抜き出す.
    inifile = utilClass.inifile

    # JRA過去情報を取得する
    result = jrapast(JraPastInfoGetClass, standardTime)

    # JRA現在情報を取得する
    result = jrapost(JraPostInfoGetClass, standardTime)

    # レースのスピード指数を計算する。
    result = analyze(AnalyzeClass, standardTime)

    # 騎手の指数を取得する
    result = jocAnalyze(JocAnalyzeClass)

    # 予想指数を算出
    result = postForecast(PostForecastClass)
예제 #13
0
def main():
    # 環境変数を取得する。
    homeDir = os.environ["APPMONEYTRADE"]

    # log用の文字列準備
    pid = os.path.basename(__file__)[0:3]  # 機能IDの取得

    # 1時的に環境変数を追加する。
    sys.path.append(homeDir)
    sys.path.append(homeDir)
    from initialize import Initialize

    # 初期化クラスのオブエクトか
    object_dict = {}
    object_dict['pid'] = pid
    Initializer = Initialize.Initialize(object_dict)

    # utilクラスのオブジェクト取得
    utilClass = Initializer.utilClass
    # daoクラスのオブジェクトを取得する。
    dao = Initializer.daoClass
    # メール送信クラスを取得する
    MASSClass = Initializer.MASSClass
    object_dict['util'] = utilClass
    object_dict['dao'] = daoClass
    object_dict['mass'] = MASSClass

    # jsonparseクラスのオブジェクト取得
    jsonClass = Initialize.class_ins('JsonParse', object_dict)

    # bitflyyerApiクラスを取得
    bitflyerClass = Initialize.class_ins('BitflyerApi', object_dict)

    # configファイルから情報を抜き出す.
    inifile = utilClass.inifile

    # 呼び出す仮想通貨の種類を洗い出す
    coinlist = utilClass.coinlistGet()
    cointype = utilClass.cointypeGet()

    # pueryの固定文字列をs¥抜き出す
    pueryStayStr = inifile.get('url', 'productcode')

    # 対象コインタイプを絞る
    targetcoin = coinlist[1]

    # 呼び出すAPIの種類を探す
    board = inifile.get('apitype', 'board')
    executions = inifile.get('apitype', 'executions')

    # apiurlを取得する。
    apiurl = inifile.get('url', 'futuredatabefore')

    # qyeryで空文字のやつを取得する。
    brankcoin = inifile.get('coin', 'nonpuery')

    # ファイルパスを取得する。
    outPath = inifile.get('filepath', 'inoutpath')

    # このバッチ処理の開始log
    utilClass.logging(pid, 0)

    ###################################
    # 104000000 start
    ###################################
    # log
    logstr = ''
    logstr = 'call webAPI by ' + targetcoin
    utilClass.logging(logstr, 0)
    before = 114681642
    lastNum = 1000000000000
    for i in range(lastNum):

        # ファイルパスを取得する。
        filepath = homeDir + outPath + 'executions_past' + '/' + targetcoin

        puery = ''
        puery = pueryStayStr

        # webapiを呼び出す。
        josnStr = bitflyerClass.executions_pastApi(apiurl, targetcoin, puery,
                                                   executions, before)

        # 取れなかった値を取得する。
        if josnStr == 0:
            utilClass.logging('can not get api is' + str(before), 2)
            continue

        #ファイルを保存する。
        savaFile(josnStr, filepath)

        #filepath
        filepath = homeDir + outPath + 'executions_past' + '/' + targetcoin + '.json'

        # log
        logstr = ''
        logstr = 'read json by ' + filepath
        utilClass.logging(logstr, 0)

        # ファイルの存在チェック
        if not os.path.exists(filepath):
            logstr = 'file not found:' + filepath
            utilClass.loggingError(logstr, before)
            continue

        # json読み込みとパース
        resultDict = jsonClass.executionsPostParse(filepath, '02')
        # デバッグ返却リストの数
        utilClass.logging(
            'get datas num = ' + str(len(resultDict)) + 'by [' + str(before) +
            ']', 2)
        # boradの挿入を行う。
        boardInsert(resultDict, pid, dao, before)

        # ファイルを消する。
        os.remove(filepath)

        # イン売り面と
        before = before + 99
    # このバッチ処理の終了log
    utilClass.logging(pid, 1)
예제 #14
0
def main():
    # 環境変数を取得する。
    homeDir = os.environ["APPMONEYTRADE"]

    # log用の文字列準備
    pid = os.path.basename(__file__)[0:3]  # 機能IDの取得

    #引数の取得
    args = sys.argv
    condTime = args[1]

    # 1時的に環境変数を追加する。
    sys.path.append(homeDir)
    from initialize import Initialize

    # 初期化クラスのオブエクトか
    object_dict = {}
    object_dict['pid'] = pid
    Initializer = Initialize.Initialize(object_dict)

    # utilクラスのオブジェクト取得
    utilClass = Initializer.utilClass
    # daoクラスのオブジェクトを取得する。
    dao = Initializer.daoClass
    # メール送信クラスを取得する
    MASSClass = Initializer.MASSClass
    object_dict['util'] = utilClass
    object_dict['dao'] = dao
    object_dict['mass'] = MASSClass

    # jsonparseクラスのオブジェクト取得
    jsonClass = Initializer.class_ins('JsonParse', object_dict)

    # bitflyyerApiクラスを取得
    bitflyerClass = Initializer.class_ins('BitflyerApi', object_dict)

    # bitflyyerApiクラスを取得
    ForgeApiClass = Initializer.class_ins('ForgeApi', object_dict)

    # configファイルから情報を抜き出す.
    inifile = utilClass.inifile

    # キーを取得する。
    key = inifile.get('apikey', 'forge')
    # 前回実行時間を取得する。
    f = open(homeDir + inifile.get(pid, 'exetime'), "r")
    exetime = f.read()[0:12]
    if int(condTime) % 2 == 1:
        # 前回と同じ時間なので処理しない。
        utilClass.logging(
            pid + ' ' + condTime +
            ' is skip for before this time has done arleady', 2)
        return
    if exetime == condTime:
        utilClass.logging(
            pid + ' ' + condTime +
            ' is skip for before this time has done arleady', 2)
        return

    f.close()
    # バッチのログを出力する.
    utilClass.logging(pid + ' ' + condTime, 0)

    # webapiを呼び出す。
    josnStr = ForgeApiClass.quotesApi(key)

    #ファイルを保存する。
    # json読み込みとパース
    resultDict = jsonClass.forgePairParse(josnStr)

    # boradの挿入を行う。
    forgePairInsert(resultDict, pid, condTime, dao)

    # 最後に実行時間を更新する。
    f = open(homeDir + inifile.get(pid, 'exetime'), "w")
    f.write(condTime)

    # このバッチ処理の終了log
    utilClass.logging(pid + ' ' + condTime, 1)
예제 #15
0
파일: main.py 프로젝트: DPRating/Wechat
# -*- coding: utf-8 -*-
# filename: main.py

import os
import sys
import web
import json
import time
import pandas as pd
from handle import Handle
from initialize import Initialize

urls = (
    '/',
    'Handle',
)

if __name__ == '__main__':
    Initialize()
    app = web.application(urls, globals())
    app.run()
예제 #16
0
    def run(self, S, N, T, model):

        NT = N * T
        #data
        y = self.y
        x = self.x
        pi = self.pi
        w = self.w

        #prior
        self._prior_set()
        #sigma_beta_sqr = self.sigma_beta_sqr
        #sigma_xi_sqr = self.sigma_xi_sqr
        #sigma_z_sqr = self.sigma_z_sqr
        #sigma_gamma_sqr = self.sigma_gamma_sqr
        #sigma_delta_sqr = self.sigma_sqr
        #initialize
        beta, delta, xi, gamma, z, u, eta, alpha, sigma_alpha_sqr, sigma_v_sqr = Initialize(
        ).generate(model, x, pi, w)

        #all_MCMC
        all_beta = np.zeros([S, x.shape[1]])
        all_xi = np.zeros([S, pi.shape[1]])
        all_delta = np.zeros([S, pi.shape[1]])
        all_z = np.zeros([S, w.shape[1]])
        all_gamma = np.zeros([S, w.shape[1]])
        all_sigma_v_sqr = np.zeros([
            S,
        ])
        all_sigma_alpha_sqr = np.zeros([
            S,
        ])
        all_alpha = np.zeros([S, N])
        all_eta = np.zeros([S, N])
        all_u = np.zeros([S, NT])
        #adjust particles number
        H = self.H
        H = H - 1
        gpu = self.gpu

        for i in range(S):
            print(i)
            ### Posterior
            # beta
            V_beta = inv((np.dot(x.T, x) * self.sigma_beta_sqr + sigma_v_sqr) /
                         (sigma_v_sqr * self.sigma_beta_sqr))
            mu_beta = np.dot(
                V_beta,
                np.dot(
                    x.T, y - u - np.kron(alpha, np.ones([
                        T,
                    ])) - np.kron(eta, np.ones(T, ))) / sigma_v_sqr)
            beta = multivariate_normal.rvs(mu_beta, V_beta)
            # sigma_v_sqr
            y_tilda = y - np.dot(x, beta) - u - np.kron(alpha, np.ones(
                T, )) - np.kron(eta, np.ones(T, ))
            shape = (NT + 1) / 2
            scale = 2 / (0.0001 + np.dot(y_tilda.T, y_tilda))
            sigma_v_sqr = 1 / np.random.gamma(shape, scale)
            # sigma_alpha_sqr
            shape = (N + 1) / 2
            scale = 2 / (0.0001 + np.dot(alpha.T, alpha))
            sigma_alpha_sqr = 1 / np.random.gamma(shape, scale)

            if gpu:
                eta, alpha, u = self.sampler(w, gamma, pi, xi, z, alpha, u, N,
                                             T, y, x, beta, sigma_v_sqr,
                                             sigma_alpha_sqr, eta, H, delta)
            else:
                eta, alpha, u = self.sampler2(w, gamma, pi, xi, z, alpha, u, N,
                                              T, y, x, beta, sigma_v_sqr,
                                              sigma_alpha_sqr, eta, H, delta)

            kwargs = {
                'delta': delta,
                'sigma_delta_sqr': self.sigma_delta_sqr,
                'pi': pi,
                'u': u,
                'xi': xi,
                'sigma_xi_sqr': self.sigma_xi_sqr,
                'z': z,
                'sigma_z_sqr': self.sigma_z_sqr,
                'w': w,
                'gamma': gamma,
                'eta': eta
            }

            if model == 'A':
                #sigma_eta
                shape = (N + 1) / 2
                scale = 2 / (0.0001 + np.dot(eta.T, eta))
                sigma_eta_sqr = 1 / np.random.gamma(shape, scale)
                #sigma_u
                shape = (NT + 1) / 2
                scale = 2 / (0.0001 + np.dot(u.T, u))
                sigma_u_sqr = 1 / np.random.gamma(shape, scale)
                #decompose for PMCMC
                gamma = np.array([np.log(sigma_eta_sqr), 0])
                xi = np.array([np.log(sigma_u_sqr), 0])
            elif model == 'B':
                delta, z = HMC().sampler(model, **kwargs)
            elif model == 'C':
                xi, gamma = HMC().sampler(model, **kwargs)
            elif model == 'D':
                delta, z, xi, gamma = HMC().sampler(model, **kwargs)

            print('beta')
            print(beta)
            print('delta')
            print(delta)
            print('xi')
            print(xi)
            print('z')
            print(z)
            print('gamma')
            print(gamma)
            print('sigma_alpha_sqr')
            print(sigma_alpha_sqr)
            print('sigma_v_sqr')
            print(sigma_v_sqr)
            print('eta_mean_std')
            print(eta.mean())
            print(eta.std())
            print('u_mean_std')
            print(u.mean())
            print(u.std())

            all_beta[i, :] = beta
            all_xi[i, :] = xi
            all_delta[i, :] = delta
            all_z[i, :] = z
            all_gamma[i, :] = gamma
            all_sigma_alpha_sqr[i] = sigma_alpha_sqr
            all_sigma_v_sqr[i] = sigma_v_sqr
            all_alpha[i, :] = alpha
            all_eta[i, :] = eta
            all_u[i, :] = u
        return all_beta, all_xi, all_delta, all_z, all_gamma, all_sigma_alpha_sqr, all_sigma_v_sqr, all_alpha, all_eta, all_u
예제 #17
0
#!/usr/bin/python

from initialize import Initialize
import os

csurBaseDir = '/hp/support/csur'
loggerName = 'csurLogger'

initialize = Initialize()

csurResourceDict = initialize.init(csurBaseDir, loggerName)
예제 #18
0
def initialize(root):
    initializeFrame = Frame(root, bg="Black")
    gif = Initialize(initializeFrame, root)
    
    initializeFrame.pack(fill=BOTH)
예제 #19
0
def main():
    # デバッグ
    starttime = datetime.now()
    print(starttime)
    # 基準年月日時分を取得する。
    standardTime = starttime.strftime('%Y%m%d%H%M')
    # 環境変数を取得する。
    homeDir = os.environ["APPMONEYTRADE"]

    # log用の文字列準備
    exefile = os.path.basename(__file__)
    pid = os.path.basename(__file__)[0:4]  # 機能IDの取得

    # 1時的に環境パスを追加する。
    sys.path.append(homeDir)
    from initialize import Initialize

    # 初期化クラスのオブエクトか
    object_dict = {}
    object_dict['pid'] = pid
    Initializer = Initialize.Initialize(object_dict)

    # utilクラスのオブジェクト取得
    utilClass = Initializer.utilClass
    # daoクラスのオブジェクトを取得する。
    daoClass = Initializer.daoClass
    # メール送信クラスを取得する
    MASSClass = Initializer.MASSClass
    object_dict['util'] = utilClass
    object_dict['dao'] = daoClass
    object_dict['mass'] = MASSClass

    # 各クラスのオブジェクト化
    # ビットフライヤークラス
    bitflyerClass = Initializer.class_ins('BitflyerApi_STRE', object_dict)
    # データマイニングクラスを取得する。
    DTMClass = Initializer.class_ins('DTMDataMining', object_dict)
    # トレード決定サービスクラスを取得する。
    TradeClass = Initializer.class_ins('TradeDecision', object_dict)
    # 機械学習(sigmoid)を呼び出す
    DNNSigmoidClass = Initializer.class_ins('DNNSDNNSigmoid', object_dict)
    # データ収集クラスを呼び出す。
    DataGatherSaveClass = Initializer.class_ins('DGGSDataGatherSave',
                                                object_dict)

    # configファイルから情報を抜き出す.
    inifile = utilClass.inifile

    # APIキーを取得する。
    key = inifile.get('apikey', 'bitflyer')
    secret = inifile.get('apikey', 'private')

    # # バッチのログを出力する.
    utilClass.logging(
        'System Trade is begun and STANDARDTIME IS [' + standardTime + ']', 0)

    # システムトレード中止/再開メール確認サービス前回実行時間を取得する。
    exestsc = inifile.get('tradedicition', 'msscServicemin')
    f = open(homeDir + inifile.get('tradedicition', 'msscServicetxt'), "r")
    exetime = f.read()[0:12]
    f.close()

    if exetime == '' or exetime is None or utilClass.strDateMinus(
            standardTime, exetime) > int(exestsc) * 60:
        # システムトレード中止/再開メール確認サービス前回実行時間を取得する。
        resultmssc = MASSClass.msscService(standardTime)

        # 状況確認サービス制御ファイル書き込み
        f = open(homeDir + inifile.get('tradedicition', 'msscServicetxt'), "w")
        f.write(standardTime)
        f.close()

        # 再開の場合
        if resultmssc['sysdradeTodo'] == 2:
            # バッチのログを出力する.
            utilClass.loggingWarn(
                'MASSClass.msscService has result theirs is restart')
            # エラー管理ービスを呼び出す
            service = 'msscService'
            TradeClass.ercrService('21',
                                   className=exefile,
                                   service=service,
                                   msg=inifile.get('service', service) +
                                   'サービスの結果が「再開」でした')

        # 中止の場合
        if resultmssc['sysdradeTodo'] == 1:
            # バッチのログを出力する.
            utilClass.loggingWarn(
                'MASSClass.msscService has result theirs is stop')
            # エラー管理ービスを呼び出す
            service = 'msscService'
            TradeClass.ercrService('81',
                                   className=exefile,
                                   service=service,
                                   msg=inifile.get('service', service) +
                                   'サービスの結果が「中止」でした')

            # 終了処理
            dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                     standardTime, daoClass)

    # 最も最近のエラー管理情報を取得する。
    resultercr = TradeClass.ercrService('00')
    if len(resultercr) >= 1 and resultercr['resultCode'] == 0 and int(
            resultercr['type'][0:1]) > 5:
        utilClass.loggingError(
            'before systrade is abnormal ended. errortype is [' +
            resultercr['type'] + ']. id is [' + str(resultercr['id']) + ']')
        dofinish(utilClass, TradeClass, MASSClass, bitflyerClass, standardTime,
                 daoClass)

    # 現在の最終取引価格を取得する。
    resultftpg = bitflyerClass.ftpgService(cointype='FX_BTC_JPY')
    if resultftpg is None or len(
            resultftpg) == 0 or resultftpg['resultCode'] == 9:
        # バッチのログを出力する.
        utilClass.loggingWarn('ftpgService is abnormal termination')
        # エラー管理テーブルを呼び出す
        service = 'ftpgService'
        TradeClass.ercrService('11',
                               className=exefile,
                               service=service,
                               msg=inifile.get('service', service) +
                               'サービスのAPI通信が失敗しました')
        dofinish(utilClass, TradeClass, MASSClass, bitflyerClass, standardTime,
                 daoClass)

    # バッチログ 現在の価格状況
    utilClass.logging('resultftpg is having ' + str(resultftpg), 2)

    # 既存予約取引参照
    resultebtr = bitflyerClass.ebtrService(key,
                                           secret,
                                           cointype='FX_BTC_JPY',
                                           datanum=1)
    if resultebtr is None or len(
            resultebtr) == 0 or resultebtr['resultCode'] == 9:
        # バッチのログを出力する.
        utilClass.loggingWarn('ebtrService is abnormal termination')
        # エラー管理サービスを呼び出す
        service = 'ebtrService'
        TradeClass.ercrService('11',
                               className=exefile,
                               service=service,
                               msg=inifile.get('service', service) +
                               'サービスのAPI通信が失敗しました')
        dofinish(utilClass, TradeClass, MASSClass, bitflyerClass, standardTime,
                 daoClass)

    # 既存予約の確認
    utilClass.logging('resultebtr is having ' + str(resultebtr), 2)

    # 既存の有効取引を取得する
    resultevtr = bitflyerClass.evtrService(key,
                                           secret,
                                           cointype='FX_BTC_JPY',
                                           datanum=1)
    if resultevtr is None or len(
            resultevtr) == 0 or resultevtr['resultCode'] == 9:
        # バッチのログを出力する.
        utilClass.loggingWarn('evtrService is abnormal termination')
        # エラー管理サービスを呼び出す
        service = 'evtrService'
        TradeClass.ercrService('11',
                               className=exefile,
                               service=service,
                               msg=inifile.get('service', service) +
                               'サービスのAPI通信が失敗しました')
        dofinish(utilClass, TradeClass, MASSClass, bitflyerClass, standardTime,
                 daoClass)

    # 既存有効取引結果をログ出力
    utilClass.logging('resultevtr is having ' + str(resultevtr), 2)

    # 状況確認の前回実行時間を取得する。
    exestsc = inifile.get('tradedicition', 'stscServicemin')
    f = open(homeDir + inifile.get('tradedicition', 'stscServicetxt'), "r")
    exetime = f.read()[0:12]
    f.close()
    if exetime == '' or exetime is None or utilClass.strDateMinus(
            standardTime, exetime) > int(exestsc) * 60:
        # 状況確認サービス
        TradeClass.stscService(standardTime, resultebtr, resultevtr)
        # 状況確認サービス制御ファイル書き込み
        f = open(homeDir + inifile.get('tradedicition', 'stscServicetxt'), "w")
        f.write(standardTime)
        f.close()

    # データマイニングを実行する。
    loop_flg = True
    while loop_flg:
        resultdtm = DTMClass.dtmservice(standardTime, dict=resultftpg)
        if resultdtm is None or len(
                resultdtm) == 0 or resultdtm['resultCode'] == 9:
            # バッチのログを出力する.
            utilClass.loggingWarn(
                'DTMClass.dtmservice is abnormal termination')
            # エラー管理サービスを呼び出す
            service = 'dtmService'
            TradeClass.ercrService('12',
                                   className=exefile,
                                   service=service,
                                   msg=inifile.get('service', service) +
                                   'サービスのデータマイニングが失敗しました')
            # 終了処理
            dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                     standardTime, daoClass)

        elif resultdtm['resultCode'] == 0:
            loop_flg = False
        else:
            # バッチのログを出力する.
            utilClass.logging('DTMClass.dtmservice is return 1 so again call',
                              2)

    # 機械学習系サービスクラス
    # ディープニューラルネットワークの分類を行う
    resultdnns = DNNSigmoidClass.dnnsService(standardTime)
    if resultdnns is None or len(
            resultdnns) == 0 or resultdnns['resultCode'] == 9:
        # バッチのログを出力する.
        utilClass.loggingWarn(
            'DNNSigmoidClass.dnnsService is abnormal termination')
        # エラー管理サービスを呼び出す
        service = 'dnnsService'
        TradeClass.ercrService('91',
                               className=exefile,
                               service=service,
                               msg=inifile.get('service', service) +
                               'サービスの機械学習(sigmoid)が失敗しました')
        dofinish(utilClass, TradeClass, MASSClass, bitflyerClass, standardTime,
                 daoClass)

    # 機械学習結果
    utilClass.logging('resultdnns is having ' + str(resultdnns), 2)

    # 機械学習結果とその時の値段を格納する
    DataGatherSaveClass.prssService(resultdnns['predict'],
                                    resultftpg['endTradePrice'])

    # 既存予約が1件以上の場合予約を取り消すか判定する
    if resultebtr['resultNum'] != 0:
        # 予約取引取消判定サービスを呼び出す。
        resultbtcd = TradeClass.btcdService(resultftpg, resultebtr, resultevtr,
                                            resultdnns)
        if resultbtcd is None or len(
                resultbtcd) == 0 or resultbtcd['resultCode'] == 9:
            # バッチのログを出力する.
            utilClass.loggingWarn(
                'TradeClass.btcdService is abnormal termination')
            # エラー管理サービスを呼び出す
            service = 'ebtrService'
            TradeClass.ercrService('11',
                                   className=exefile,
                                   service=service,
                                   msg=inifile.get('service', service) +
                                   'サービスが失敗しました')
            dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                     standardTime, daoClass)

        # 予約取引判定の結果
        utilClass.logging('resultbtcd is having ' + str(resultbtcd), 2)

        # 予約を取り消す場合
        if resultbtcd['orderCancelFlg'] == 1:

            # 既存の予約を取り消す。
            resultebtc = bitflyerClass.ebtcService(
                key,
                secret,
                resultebtr['child_order_id'],
                cointype='FX_BTC_JPY')
            if 0 == resultebtc:
                # バッチのログを出力する。
                utilClass.logging(
                    'can not get bitflyerData so skiped' +
                    ' data is ebtcService', 2)
                # エラー管理サービスを呼び出す
                service = 'ebtcService'
                TradeClass.ercrService('11',
                                       className=exefile,
                                       service=service,
                                       msg=inifile.get('service', service) +
                                       'サービスが失敗しました')
                # 再度予約取消を呼び出す。
                resultebtc = bitflyerClass.ebtcService(
                    key,
                    secret,
                    resultebtr['child_order_id'],
                    cointype='FX_BTC_JPY')

            # 予約取消について再度確認
            if 0 == resultebtc:
                # バッチのログを出力する。
                utilClass.logging(
                    'can not get bitflyerData so skiped' +
                    ' data is ebtcService', 2)
                dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                         standardTime, daoClass)

            # 予約取消確認が取れるまで確認する。
            if resultebtc == 1:
                while (True):
                    # 既存の予約を取得する。
                    resultebtr2 = bitflyerClass.ebtrService(
                        key, secret, cointype='FX_BTC_JPY', datanum=1)
                    sleep(2)
                    if len(resultebtr2) > 0 and resultebtr2['resultNum'] == 0:
                        # 予約が取り消されたらメールで送信する。
                        # メール送信を整える。
                        dict = {}
                        dict['subject'] = '予約取引取消完了通知'
                        body = ['取引予約が完了しました。']
                        body.append('▼詳細情報')
                        body.append('取消注文ID:' + resultebtr['child_order_id'])
                        body.append('取消注文額:' + str(resultebtr['price']))
                        body.append('取消注文サイド:' + resultebtr['side'])
                        body.append('取消注文量:' + str(resultebtr['size']))
                        dict['body'] = body
                        MASSClass.massService(dict)
                        break

            # 証拠金確認サービスを実行する
            call_cchrService(key, secret, utilClass, TradeClass, MASSClass,
                             bitflyerClass)
            # 終了処理
            dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                     standardTime, daoClass)

        else:
            # 証拠金確認サービスを実行する。
            call_cchrService(key, secret, utilClass, TradeClass, MASSClass,
                             bitflyerClass)
            # 終了処理
            dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                     standardTime, daoClass)

    # 既存の有効取引が存在する場合は損切り、利益確定判定を実施する。
    if resultevtr['resultNum'] != 0:
        # 損切り/利益確定判定を実施する。
        resultlptd = TradeClass.lptdService(resultftpg, resultevtr, resultdnns)
        if resultlptd is None or len(
                resultlptd) == 0 or resultlptd['resultCode'] == 9:
            utilClass.loggingWarn(
                'TradeClass.lptdService is abnormal termination')
            # エラー管理サービスを呼び出す
            service = 'lptdService'
            TradeClass.ercrService('91',
                                   className=exefile,
                                   service=service,
                                   msg=inifile.get('service', service) +
                                   'サービスが失敗しました')
            dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                     standardTime, daoClass)

        # 損切利益判定の処理結果をログに出力する。
        utilClass.logging('resultlptd is having ' + str(resultlptd), 2)

        if resultlptd['executeflg'] == 1:
            # 新規取引と新規取引完了確認
            neworder(key, secret, resultlptd['side'], resultlptd['price'],
                     resultlptd['size'], utilClass, TradeClass, MASSClass,
                     bitflyerClass, standardTime, daoClass, exefile, inifile,
                     resultevtr, resultlptd['lossgain'])

            # 証拠金変動確認と更新
            call_cchrService(key, secret, utilClass, TradeClass, MASSClass,
                             bitflyerClass)
            # 終了処理
            dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                     standardTime, daoClass)
        else:
            # 証拠金変動確認と更新
            call_cchrService(key, secret, utilClass, TradeClass, MASSClass,
                             bitflyerClass)
            # 終了処理
            dofinish(utilClass, TradeClass, MASSClass, bitflyerClass,
                     standardTime, daoClass)

    # 新規取引判定を行う
    resultntrd = TradeClass.ntrdService(resultftpg, resultdnns)
    if resultntrd is None or len(
            resultntrd) == 0 or resultntrd['resultCode'] == 9:
        # 警告ログを出力する。
        utilClass.loggingWarn(
            'DNNSigmoidClass.dnnsService is abnormal termination')
        # エラー管理サービス
        service = 'ntrdService'
        TradeClass.ercrService('91',
                               className=exefile,
                               service=service,
                               msg=inifile.get('service', service) +
                               'サービスが失敗しました')
        dofinish(utilClass, TradeClass, MASSClass, bitflyerClass, standardTime,
                 daoClass)

    # 新規取引判定結果ログ出力
    utilClass.logging('ntrdService is having ' + str(resultntrd), 2)

    # 新規取引判定が有りの場合は新規予約取引サービスを呼び出す
    if resultntrd['newOrderFlg'] == 1:
        # 新規取引と新規取引完了確認
        neworder(key, secret, resultntrd['side'], resultntrd['price'],
                 resultntrd['size'], utilClass, TradeClass, MASSClass,
                 bitflyerClass, standardTime, daoClass, exefile, inifile,
                 resultevtr, 0)

    # 証拠金確認サービスを呼び出す.
    call_cchrService(key, secret, utilClass, TradeClass, MASSClass,
                     bitflyerClass)

    # バッチ終了ログ
    dofinish(utilClass, TradeClass, MASSClass, bitflyerClass, standardTime,
             daoClass)