Ebenen-Trends_Digitale Währungsstrategie V0.2

Schriftsteller:Der Arktis, Datum: 13.09.2016 17:36:54
Tags:EntwicklungPython- Nein.

@Taylor QQ7650371 Ich bin nicht derjenige, der das sagt. #Gleichgewicht/Trend Strategie # Beurteilen Sie, wie viel Sie kaufen, nachdem Sie sich unter dem Todesfork zurückgeworfen haben # Wie viel verkaufst du nach dem Aufstieg auf die Spitze?


#!/usr/local/bin/python
#-*- coding: UTF-8 -*-
#均线/趋势  策略
#通过判断  在死叉下底后回弹多少买入
#在金叉上扬至顶后下降多少卖出


# FastPeriod=3 #开仓快线周期
# SlowPeriod=7 #开仓慢线周期
# EnterPeriod=1       #开仓观察期
# ExitFastPeriod=3 #平仓线周期
# ExitSlowPeriod=7 #平仓慢线周期
# ExitPeriod=2        #平仓观察期
# PositionRatio=0.5 #仓位比例
# Interval=10 #轮询周期
# MAType=0 #均线类型 TA.EMA|TA.MA


import types
array = [TA.EMA,TA.MA]
_MACalcMethod = array[MAType]
def Cross(a,b):   #计算均线方法
    crossNum = 0
    arr1 = []
    arr2 = []
    if(type(a) == types.ListType and type(b) == types.ListType):
        arr1 = a
        arr2 = b
    else:
        records = null
        while True:
            records = exchange.GetRecords()
            if(records and len(records) > a and len(records) > b):
                break
            Sleep(Interval)
        arr1 = _MACalcMethod(records,a)
        arr2 = _MACalcMethod(records,b)
    if(len(arr1) != len(arr2)):
        raise Exception("array length not equal")
    for i in range(len(arr1) - 1,-1,-1):
        if((type(arr1[i]) != types.IntType and type(arr1[i]) != types.FloatType) or (type(arr2[i]) != types.IntType and type(arr2[i]) != types.FloatType) ):
            break
        if(arr1[i] < arr2[i]):
            if(crossNum > 0):
                break
            crossNum -= 1
        elif(arr1[i] > arr2[i]):
            if(crossNum < 0):
                break
            crossNum += 1
        else:
            break
    return crossNum

import datetime
def Caltime(date1,date2):
    try:
        date1=time.strptime(date1,"%Y-%m-%d %H:%M:%S")
        date2=time.strptime(date2,"%Y-%m-%d %H:%M:%S")
        date1=datetime.datetime(date1[0],date1[1],date1[2],date1[3],date1[4],date1[5])
        date2=datetime.datetime(date2[0],date2[1],date2[2],date2[3],date2[4],date2[5])
        return date2-date1
    except Exception,ex:
        Log('except Exception Caltime:',ex)
        return "except Exception"

import time
start_timexx =time.localtime(time.time()) #time.clock()
start_time=time.strftime("%Y-%m-%d %H:%M:%S",start_timexx)
buy_price=0 #买入价格
buy_qty=0  #买入数量
gains=0  #盈利

def my_buy(): #开仓
    try:
        global buy_price,buy_qty
        initAccount = ext.GetAccount()  #交易模板的导出函数, 获得账户状态,保存策略运行前账户初始状态
        opAmount=1
        #开仓之前判断有币没有没有先进行买入
        if int(initAccount.Stocks)>1:
            if buy_price<1:
                buy_price=_C(exchange.GetTicker).Last
                buy_qty=initAccount.Stocks
            Log('开仓信息1 仓内还有比:',initAccount.Stocks,'进行清空','--开仓详情:',initAccount)
            return 1
        if int(initAccount.Stocks)<1:
            if int(str(initAccount.Stocks).replace('0.',''))>=1:
                if buy_price<1:
                    buy_price=_C(exchange.GetTicker).Last
                    buy_qty=initAccount.Stocks
                Log('开仓信息2 仓内还有比:',initAccount.Stocks,'进行清空','--开仓详情:',initAccount)
                return 1

        #if int(initAccount.Stocks)<1:
        if int(str(initAccount.Stocks).replace('0.',''))==0:
            #opAmount=1
            opAmount = _N(initAccount.Balance*PositionRatio,3)  #买入数量
            Log("开仓没有币先进行 开仓买入%s元"%(str(opAmount)))   #生成LOG日志
        #     else:
        #         opAmount = _N(initAccount.Stocks * PositionRatio,3)  #获取交易数量
        # else:
        #     opAmount = _N(initAccount.Stocks * PositionRatio,3)  #获取交易数量
        Dict = ext.Buy(opAmount)  #买入ext.Buy
        if(Dict):#确认开仓成功
            buy_price=Dict['price'] #买入价格   #{'price': 4046.446, 'amount': 1.5}
            buy_qty=Dict['amount']  #买入数量
            print_log(1,initAccount,Dict)
            return 1
        return 0

    except Exception,ex:
        Log('except Exception my_buy:',ex)
        return 0

outAccount = ext.GetAccount()  #初始化信息
def print_log(k_p,Account,Dict):
    try:
        global outAccount
        name=""
        if k_p:
            LogProfit(_N(gains,4),'开仓信息 钱:',Account.Balance,'--币:',Account.Stocks,'--开仓详情:',Dict)
            name="开仓"
        else:
            LogProfit(_N(gains,4),'平仓信息 钱:',Account.Balance,'--币:',Account.Stocks,'--平仓详情:',Dict)
            name="平仓"
        endAccount = ext.GetAccount()  #初始化信息
        date1=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
        LogStatus("初始化投入2016/9/16  投入资金2000元\r\n",
                  "本次初始化状态:",outAccount,
                  "\r\n当前运  行状态:",endAccount,
                  "\r\n本次开始运行时间:%s  已运行:%s\r\n"%(start_time,Caltime(start_time,date1)),
                  "本次盈利:%s\r\n"%(str(gains)),
                  "当前状态:%s--钱:%s--币:%s\r\n"%(str(name),str(Account.Balance),str(Account.Stocks)),
                  "更新时间:%s"%(date1)
                  ) # 测试
    except Exception,ex:
        Log('except Exception print_log:',ex)


def my_sell(): #平仓
    try:
        global buy_price,buy_qty,gains,start_time
        nowAccount = ext.GetAccount()  #交易模板的导出函数  获取账户信息
        if _C(exchange.GetTicker).Last>buy_price+4:   #当前价格一定要大于  开仓价格
            Dict = ext.Sell(nowAccount.Stocks)
            if(Dict):
                sell_gains=(Dict['price']-buy_price)*Dict['amount']
                gains=gains+sell_gains
                buy_price=0 #买入价格
                buy_qty=0  #买入数量
                print_log(0,nowAccount,Dict)
                return 1
        return 0
    except Exception,ex:
        Log('except Exception my_sell:',ex)
        return 0

def main():
    global outAccount
    STATE_IDLE = -1  #空闲状态
    state = STATE_IDLE  #初始化  状态 为 空闲

    Log("run  ",outAccount)  #输出初始账户信息
    SetErrorFilter("GetAccount|GetRecords|GetTicker")  #屏蔽错误内容

    b=0  #开仓
    b1=0  #检测次数
    a=0  #平仓
    a1=0  #检测次数
    while True:
        if(state == STATE_IDLE):   #判断状态是否 为空闲 触发开仓
            #开仓
            n = Cross(FastPeriod,SlowPeriod) #模板函数获取EMA指标快线、慢线交叉结果
            if n<0:  #确定当前为死叉
                b1+=1
                if b>=int(n): #说明现在还是在下跌涨趋势
                    b=int(n)
                else: #开始下跌  开仓
                    if(int(n)>=int(b)+int(EnterPeriod)):  #确认上行走势 至自己定义的点
                        if my_buy():  #开仓
                            b=0
                            b1=0
                            state = PD_SHORT
                            # if(b1>=10):#小波动操作开仓
                            #     b1=0
                            #     if my_buy():
                            #         b=0
                            #         state = PD_SHORT
        else:#平仓
            n = Cross(ExitFastPeriod,ExitSlowPeriod) #模板函数获取EMA指标快线、慢线交叉结果
            if n>0:  #确定当前为金叉
                a1+=1
                if a<=int(n): #说明现在还是在上涨趋势
                    a=int(n)
                else: #开始下跌  平仓
                    if(int(n)<=int(a)-int(ExitPeriod)):  #确认下行走势 至自己定义的点
                        if my_sell(): #平仓
                            a=0
                            a1=0
                            state = STATE_IDLE   #更改状态  为空闲 触发开仓
                            # if(a1>=10): #小波动操作平仓
                            #     a1=0
                            #     if my_sell():
                            #         a=0
                            #         state = STATE_IDLE   #更改状态  为空闲 触发开仓
        Sleep(Interval * 1000)



Verwandt

Mehr

Die EdelstahlschneckeFühren Sie die Fehlermeldung Trackback (most recent call last) aus: File "", line 967, in __init_ctx__ File "", line 63 except Exception, ex: ^ SyntaxError: invalid syntax

Das ist wahr.Ich habe es geändert und habe jedes Mal zu Marktpreisen gekauft, ein paar Mal ohne Fehler gelaufen, aber jedes Mal verloren...

Das ist wahr.#!/usr/local/bin/python #-*- Codierung: UTF-8 -*- #Gleichgewicht/Trend Strategie # Beurteilen, wie viel man kauft, nachdem man unter dem Todesstapler zurückgebockt hat # Wie viel verkaufst du nach dem Aufstieg auf die Spitze? # FastPeriod=3 # Schnellzeitrahmen #SlowPeriod=7 #Slowline-Zyklus für den Börsengang # EnterPeriod=1 # Eröffnungszeitraum # ExitFastPeriod=3 # Ausgangsperiode # ExitSlowPeriod=7 # Lohn- und Verlust-Slowline-Zyklus # ExitPeriod=2 # Ausstiegsbeobachtung # PositionRatio = 0.5 # Positionsverhältnis #Interval=10 #Umfragezeitraum # MAType=0 # Gleichlinientyp TA.EMA.MA Hier ist eine Liste von Arrays. _MACalcMethod = Array[MAType] Ext = exchange def Cross ((a, b): # Berechnung der Gleichlinienmethode crossNum ist 0. Das ist arr1 = [] Das ist arr2 = [] listType = type ((arr1)) IntType = type ((1) floatType = type ((1.1) if (type (a) == type (arr1) and type (b) == type (arr2)): Arr1 ist a. Arr2 ist gleich b. else: Aufzeichnungen = null while True: records = exchange.GetRecords if ((records and len ((records) > a und len ((records) > b): Sie haben sich verändert. Schlaf (Intervall) Arr1 = _MACalcMethod ((records, a) Arr2 = _MACalcMethod ((records, b)) Wenn (len) arr1!= len (arr2): "Array length not equal" (Arraylänge nicht gleich) für i in range ((len ((arr1) - 1, -1, -1): Wenn der Typ von einem Array mit einem Array von zwei Arrays ist, dann ist der Array von zwei Arrays mit einem Array von zwei Arrays. Sie haben sich verändert. wenn ((arr1[i] < arr2[i]): if ((crossNum > 0): Sie haben sich verändert. crossNum ist gleich 1. Elif ((arr1[i] > arr2[i]): if ((crossNum < 0): Sie haben sich verändert. crossNum + ist gleich 1. else: Sie haben sich verändert. Rückkehr des CrossNum Datenzeit importieren def Caltime ((date1, date2)): Versuch: date1 = time.strptime ((date1, "%Y-%m-%d %H:%M:%S") date2 = time.strptime ((date2, "%Y-%m-%d %H:%M:%S") date1 = datetime. datetime ((date1[0], date1[1], date1[ 2], date1[3], date1[4], date1[5]) date2 = datetime. datetime ((date2[0], date2[1], date2[ 2], date2[3], date2[4], date2[5]) return date2 - date1 Except Exception as ex: Log (('except Exception Caltime:', ex) return "außer Ausnahme" Importzeit start_timexx = time.localtime ((time.time))) # time.clock ((() start_time = time.strftime (("%Y-%m-%d %H:%M:%S", start_timexx) # Kaufpreis = 0 buy_qty = 0 # Anzahl der Einkäufe Gewinne = 0 # Gewinn Def my_buy (): # Aktien eröffnen Versuch: Global buy_price, buy_qty initAccount = ext.GetAccount() # Exportfunktion der Transaktionsvorlage, die den Kontozustand erhält, die den Kontozustand vor dem Ausführen der Politik speichert OpAmount = 1 # Bevor man den Handel eröffnet, muss man entscheiden, ob es Münzen gibt oder nicht, ohne vorher zu kaufen Wenn int ((initAccount.Stocks) > 1: wenn buy_price < 1: Der Preis für den Kauf ist _C (exchange.GetTicker). Das ist ein sehr schwieriger Fall. Log (('Standortinformationen 1' gibt es auch als:', initAccount.Stocks, ' (Rückgängig zu machen), '-- Öffnen Details:', initAccount) Rückkehr 1 wenn int ((initAccount.Stocks) < 1: if int ((float))) str ((initAccount.Stocks).replace (('0.', ''))) >= 1: wenn buy_price < 1: Der Preis für den Kauf ist _C (exchange.GetTicker). Das ist ein sehr schwieriger Fall. Log (('Standortinformationen 2' gibt es auch als:', initAccount.Stocks, ' (Rückgängig zu machen), '-- Öffnen Details:', initAccount) Rückkehr 1 # wenn int ((initAccount.Stocks) <1: if int ((float)) str ((initAccount.Stocks).replace (('0.', ''))) == 0: # opAmount=1 OpAmount = _N(initAccount.Balance * PositionRatio, 3) # Anzahl der Einkäufe Log (("Einladen ohne Münze vorgenommen Einladen mit %s Euro" % (str ((opAmount))) # Erzeugen von LOG-Log # else: # opAmount = _N ((initAccount.Stocks * PositionRatio,3) # Anzahl der Transaktionen erhalten # else: # opAmount = _N ((initAccount.Stocks * PositionRatio,3) # Anzahl der Transaktionen erhalten orderId = ext.Buy ((-1,opAmount) # Kaufext.Buy -1 steht für den Marktpreis if ((orderId): # Erfolgreich bestätigt # Kaufpreis #{'price': 4046.446, 'amount: 1.5} Dict = exchange.GetOrder ((orderId)) Buy_price = Dict ['Preis'] Buy_qty = Dict['Amount'] # Kaufmenge Print_log ((1, initAccount, Dict) Rückkehr 1 Rückkehr 0 Except Exception as ex: Log (('except Exception my_buy:',ex) return 0 outAccount = ext.GetAccount ((() # Initiierung der Informationen Def print_log ((k_p, Account, Dict): Versuch: Global outAccount Name = "" Wenn k_p: LogProfit ((_N(gains, 4), 'Eröffnungsinformationen Geld:', Account.Balance, '--Währung:', Account.Stocks, '--Einlagen Details:', Dict) Name = "Offensive" else: LogProfit ((_N(gains, 4), 'Bilanzinformationen Geld:', Account.Balance, '--Coin:', Account.Stocks, '--Bilanzierung Details:', Dict) Name = "Gleichgewicht" EndAccount = ext.GetAccount (() # Initiierungsanweisung date1 = time.strftime (("%Y-%m-%d %H:%M:%S", time.localtime ((time.time))) LogStatus ((("Initialisierung 2016/9/16 Einlage 2000 Yuan\r\n", "Dieser Initializationsstatus:", "outAccount", "\r\n Aktueller Laufzustand:", endAccount, "\r\n Die Laufzeit: %s ist abgelaufen: %s\r\n" % ( start_time, Caltime (start_time, date1)), "Dieser Profit: %s\r\n" % (str(gains) Der aktuelle Status: %s-- Geld: %s-- Währung: %s\r\n" % (str(name), Der Name der Seite ist "Account.Balance" und "Account.Stocks". "Update Zeit: %s" % (date1) * # Tests Except Exception as ex: Log (('except Exception print_log:', ex) Def my_sell: # Verkäufe Versuch: Global buy_price, buy_qty, gewinne, start_time nowAccount = ext.GetAccount() # Exportfunktion der Transaktionsvorlage if _C ((exchange.GetTicker).Last > buy_price + 4: # Der aktuelle Preis muss größer sein als der Eröffnungspreis Log ((type ((nowAccount.Stocks), jetztAccount.Stocks) orderId = ext.Sell ((-1, nowAccount.Stocks) #-1 steht für den Marktpreis if (ordernId): Log ((Type ((OrderId)) Dict = ext.GetOrder ((orderId)) Sell_gains = (Dict ['Price'] - buy_price) * Dict ['Amount'] Die Anzahl der Gewinne wird durch die Anzahl der Gewinne ermittelt. Gewinne = Gewinne + Sell_gains # Kaufpreis = 0 Die Anzahl der Einkäufe ist 0 Print_log ((0, nowAccount, Dict) Rückkehr 1 Rückkehr 0 Except Exception as ex: Log (('except Exception my_sell:',ex) Rückkehr 0 Def main (: Global outAccount STATE_IDLE = -1 # Leerstand state = STATE_IDLE # Initialieren Log (("run", outAccount) # Ausgabe der ursprünglichen Kontoinformationen SetErrorFilter (("GetAccount in GetRecords in GetTicker") # Verhindert fehlerhaften Inhalt b = 0 # Börsenöffnung b1 = 0 # Anzahl der Detektionen a = 0 # Gleichgewicht a1 = 0 # Anzahl der Detektionen while True: if ((state == STATE_IDLE): # Beurteilt, ob der Status für die Leerlaufzeit den Handel auslöst # Eröffnung n = Cross ((FastPeriod, SlowPeriod) # Die Template-Funktion erhält EMA-Indikatoren für Schnell- und Langzeitschnitt if n < 0: # Bestimmt für die aktuelle Totenvierk. b1 + 1 ist gleich 1. if b >= int ((n): # zeigt, ob es sich um einen Abwärtstrend handelt b = int (n) else: # Beginn des Abstiegs if ((int(n) >= int(b) + int ((EnterPeriod)): # Bestätigt die Aufwärtsbewegung bis zu einem definierten Punkt Wenn mein_Kauf: # Eröffnen b ist 0. b1 ist 0. state = PD_SHORT # if ((b1>=10): # Kleine Schwankungen # b1 ist 0 #if my_buy: # b ist 0 # state = PD_SHORT else: # Flachlager n = Cross ((ExitFastPeriod, ExitSlowPeriod) # Die Template-Funktion erhält EMA-Indikatoren für Schnellen, langsamen Kreuzungen if n > 0: # Festlegt den aktuellen Goldenen Gabel a1 + 1 ist gleich 1. if a <= int ((n): # zeigt, ob es sich derzeit um einen steigenden Trend handelt a = int (n) else: # Beginnt zu sinken if ((int ((n) <= int ((a) - int ((ExitPeriod)): # bestätigt eine Abwärtsbewegung bis zu einem definierten Punkt Wenn my_sell: # Flachlager a ist 0. a1 ist 0. state = STATE_IDLE # Wechseln Sie den Status für Leerlauf # if ((a1>=10): # Kleine Schwankungen bei Operationen # a1 ist 0 #if my_sell: # a ist 0 # state = STATE_IDLE # Wechseln Sie den Status auf Blank, um eine Position zu starten Schlaf (Intervall * 1000)

Das ist wahr.#!/usr/local/bin/python #-*- Codierung: UTF-8 -*- #Gleichgewicht/Trend Strategie # Beurteilen, wie viel man kauft, nachdem man unter dem Todesstapler zurückgebockt hat # Wie viel verkaufst du nach dem Aufstieg auf die Spitze? # FastPeriod=3 # Schnellzeitrahmen #SlowPeriod=7 #Slowline-Zyklus für den Börsengang # EnterPeriod=1 # Eröffnungszeitraum # ExitFastPeriod=3 # Ausgangsperiode # ExitSlowPeriod=7 # Lohn- und Verlust-Slowline-Zyklus # ExitPeriod=2 # Ausstiegsbeobachtung # PositionRatio = 0.5 # Positionsverhältnis #Interval=10 #Umfragezeitraum # MAType=0 # Gleichlinientyp TA.EMA.MA Hier ist eine Liste von Arrays. _MACalcMethod = Array[MAType] Ext = exchange def Cross ((a, b): # Berechnung der Gleichlinienmethode crossNum ist 0. Das ist arr1 = [] Das ist arr2 = [] listType = type ((arr1)) IntType = type ((1) floatType = type ((1.1) if (type (a) == type (arr1) and type (b) == type (arr2)): Arr1 ist a. Arr2 ist gleich b. else: Aufzeichnungen = null while True: records = exchange.GetRecords if ((records and len ((records) > a und len ((records) > b): Sie haben sich verändert. Schlaf (Intervall) Arr1 = _MACalcMethod ((records, a) Arr2 = _MACalcMethod ((records, b)) Wenn (len) arr1!= len (arr2): "Array length not equal" (Arraylänge nicht gleich) für i in range ((len ((arr1) - 1, -1, -1): Wenn der Typ von einem Array mit einem Array von zwei Arrays ist, dann ist der Array von zwei Arrays mit einem Array von zwei Arrays. Sie haben sich verändert. wenn ((arr1[i] < arr2[i]): if ((crossNum > 0): Sie haben sich verändert. crossNum ist gleich 1. Elif ((arr1[i] > arr2[i]): if ((crossNum < 0): Sie haben sich verändert. crossNum + ist gleich 1. else: Sie haben sich verändert. Rückkehr des CrossNum Datenzeit importieren def Caltime ((date1, date2)): Versuch: date1 = time.strptime ((date1, "%Y-%m-%d %H:%M:%S") date2 = time.strptime ((date2, "%Y-%m-%d %H:%M:%S") date1 = datetime. datetime ((date1[0], date1[1], date1[ 2], date1[3], date1[4], date1[5]) date2 = datetime. datetime ((date2[0], date2[1], date2[ 2], date2[3], date2[4], date2[5]) return date2 - date1 Except Exception as ex: Log (('except Exception Caltime:', ex) return "außer Ausnahme" Importzeit start_timexx = time.localtime ((time.time))) # time.clock ((() start_time = time.strftime (("%Y-%m-%d %H:%M:%S", start_timexx) # Kaufpreis = 0 buy_qty = 0 # Anzahl der Einkäufe Gewinne = 0 # Gewinn Def my_buy (): # Aktien eröffnen Versuch: Global buy_price, buy_qty initAccount = ext.GetAccount() # Exportfunktion der Transaktionsvorlage, die den Kontozustand erhält, die den Kontozustand vor dem Ausführen der Politik speichert OpAmount = 1 # Bevor man den Handel eröffnet, muss man entscheiden, ob es Münzen gibt oder nicht, ohne vorher zu kaufen Wenn int ((initAccount.Stocks) > 1: wenn buy_price < 1: Der Preis für den Kauf ist _C (exchange.GetTicker). Das ist ein sehr schwieriger Fall. Log (('Standortinformationen 1' gibt es auch als:', initAccount.Stocks, ' (Rückgängig zu machen), '-- Öffnen Details:', initAccount) Rückkehr 1 wenn int ((initAccount.Stocks) < 1: if int ((float))) str ((initAccount.Stocks).replace (('0.', ''))) >= 1: wenn buy_price < 1: Der Preis für den Kauf ist _C (exchange.GetTicker). Das ist ein sehr schwieriger Fall. Log (('Standortinformationen 2' gibt es auch als:', initAccount.Stocks, ' (Rückgängig zu machen), '-- Öffnen Details:', initAccount) Rückkehr 1 # wenn int ((initAccount.Stocks) <1: if int ((float)) str ((initAccount.Stocks).replace (('0.', ''))) == 0: # opAmount=1 OpAmount = _N(initAccount.Balance * PositionRatio, 3) # Anzahl der Einkäufe Log (("Einladen ohne Münze vorgenommen Einladen mit %s Euro" % (str ((opAmount))) # Erzeugen von LOG-Log # else: # opAmount = _N ((initAccount.Stocks * PositionRatio,3) # Anzahl der Transaktionen erhalten # else: # opAmount = _N ((initAccount.Stocks * PositionRatio,3) # Anzahl der Transaktionen erhalten orderId = ext.Buy ((-1,opAmount) # Kaufext.Buy -1 steht für den Marktpreis if ((orderId): # Erfolgreich bestätigt # Kaufpreis #{'price': 4046.446, 'amount: 1.5} Dict = exchange.GetOrder ((orderId)) Buy_price = Dict ['Preis'] Buy_qty = Dict['Amount'] # Kaufmenge Print_log ((1, initAccount, Dict) Rückkehr 1 Rückkehr 0 Except Exception as ex: Log (('except Exception my_buy:',ex) return 0 outAccount = ext.GetAccount ((() # Initiierung der Informationen Def print_log ((k_p, Account, Dict): Versuch: Global outAccount Name = "" Wenn k_p: LogProfit ((_N(gains, 4), 'Eröffnungsinformationen Geld:', Account.Balance, '--Währung:', Account.Stocks, '--Einlagen Details:', Dict) Name = "Offensive" else: LogProfit ((_N(gains, 4), 'Bilanzinformationen Geld:', Account.Balance, '--Coin:', Account.Stocks, '--Bilanzierung Details:', Dict) Name = "Gleichgewicht" EndAccount = ext.GetAccount (() # Initiierungsanweisung date1 = time.strftime (("%Y-%m-%d %H:%M:%S", time.localtime ((time.time))) LogStatus ((("Initialisierung 2016/9/16 Einlage 2000 Yuan\r\n", "Dieser Initializationsstatus:", "outAccount", "\r\n Aktueller Laufzustand:", endAccount, "\r\n Die Laufzeit: %s ist abgelaufen: %s\r\n" % ( start_time, Caltime (start_time, date1)), "Dieser Profit: %s\r\n" % (str(gains) Der aktuelle Status: %s-- Geld: %s-- Währung: %s\r\n" % (str(name), Der Name der Seite ist "Account.Balance" und "Account.Stocks". "Update Zeit: %s" % (date1) * # Tests Except Exception as ex: Log (('except Exception print_log:', ex) Def my_sell: # Verkäufe Versuch: Global buy_price, buy_qty, gewinne, start_time nowAccount = ext.GetAccount() # Exportfunktion der Transaktionsvorlage if _C ((exchange.GetTicker).Last > buy_price + 4: # Der aktuelle Preis muss größer sein als der Eröffnungspreis Log ((type ((nowAccount.Stocks), jetztAccount.Stocks) orderId = ext.Sell ((-1, nowAccount.Stocks) #-1 steht für den Marktpreis if (ordernId): Log ((Type ((OrderId)) Dict = ext.GetOrder ((orderId)) Sell_gains = (Dict ['Price'] - buy_price) * Dict ['Amount'] Die Anzahl der Gewinne wird durch die Anzahl der Gewinne ermittelt. Gewinne = Gewinne + Sell_gains # Kaufpreis = 0 Die Anzahl der Einkäufe ist 0 Print_log ((0, nowAccount, Dict) Rückkehr 1 Rückkehr 0 Except Exception as ex: Log (('except Exception my_sell:',ex) Rückkehr 0 Def main (: Global outAccount STATE_IDLE = -1 # Leerstand state = STATE_IDLE # Initialieren Log (("run", outAccount) # Ausgabe der ursprünglichen Kontoinformationen SetErrorFilter (("GetAccount in GetRecords in GetTicker") # Verhindert fehlerhaften Inhalt b = 0 # Börsenöffnung b1 = 0 # Anzahl der Detektionen a = 0 # Gleichgewicht a1 = 0 # Anzahl der Detektionen while True: if ((state == STATE_IDLE): # Beurteilt, ob der Status für die Leerlaufzeit den Handel auslöst # Eröffnung n = Cross ((FastPeriod, SlowPeriod) # Die Template-Funktion erhält EMA-Indikatoren für Schnell- und Langzeitschnitt if n < 0: # Bestimmt für die aktuelle Totenvierk. b1 + 1 ist gleich 1. if b >= int ((n): # zeigt, ob es sich um einen Abwärtstrend handelt b = int (n) else: # Beginn des Abstiegs if ((int(n) >= int(b) + int ((EnterPeriod)): # Bestätigt die Aufwärtsbewegung bis zu einem definierten Punkt Wenn mein_Kauf: # Eröffnen b ist 0. b1 ist 0. state = PD_SHORT # if ((b1>=10): # Kleine Schwankungen # b1 ist 0 #if my_buy: # b ist 0 # state = PD_SHORT else: # Flachlager n = Cross ((ExitFastPeriod, ExitSlowPeriod) # Die Template-Funktion erhält EMA-Indikatoren für Schnellen, langsamen Kreuzungen if n > 0: # Festlegt den aktuellen Goldenen Gabel a1 + 1 ist gleich 1. if a <= int ((n): # zeigt, ob es sich derzeit um einen steigenden Trend handelt a = int (n) else: # Beginnt zu sinken if ((int ((n) <= int ((a) - int ((ExitPeriod)): # bestätigt eine Abwärtsbewegung bis zu einem definierten Punkt Wenn my_sell: # Flachlager a ist 0. a1 ist 0. state = STATE_IDLE # Wechseln Sie den Status für Leerlauf # if ((a1>=10): # Kleine Schwankungen bei Operationen # a1 ist 0 #if my_sell: # a ist 0 # state = STATE_IDLE # Wechseln Sie den Status auf Blank, um eine Position zu starten Schlaf (Intervall * 1000)

Die Kommission wirdexcept Exception my_sell: ooOooo000oOO Instanz hat keinen Attribut 'GetMinStock' Was soll das bedeuten, wenn ich immer wieder aufmerksam gemacht werde?

17707250703Das war gut, aber jetzt ist es nicht mehr nötig.

Der ArktisGleichgewichte_Trend_Strategie_1 Ich bin ein großer Liebhaber der Musik. Ebenen_Trend_Strategiehandel_Hochwertigkeit 2 Ich bin ein großer Liebhaber von Videos und Videos.