엠마의 횡단 신호에 대한 문제점을 확인해 주세요.

저자:, 2021-11-04 11:34:33, 업데이트:

두 개의 eMA 파라미터, eMA1 (A2) 와 eMA2 (A3) 가 있다. 이 중 eMA 설정이 100보다 크면 fmz가 실제 실행되는 동안 eMA와 Binyan의 값이 일치하지 않으며, eMA가 100보다 작을 때 정상이며, 이는 열기 신호를 앞당기고 또는 5-10개의 k줄을 지연시킨다.

""반응 테스트 시작: 2021-11-01 00:00:00 끝: 2021-11-02 00:00:00 기간: 5m 기본 기간: 1m 거래소: {eid:Futures_Binance,currency:BTC_USDT} args: [[M,8],[A2,100],[A3,200],[K3,500],[K2,300]] "

def accuracy (((): # 거래소의 정확성을 얻는다 글로벌 BV1, CV1 exchanges[i].SetContractType () currency1=_C ((exchanges[i].GetCurrency) 틱어1=_C ((exchanges[i].GetTicker) account1=_C ((exchanges[i].GetAccount) all_BV1list=[ALICE_USDT,DODO_USDT,UNFI_USDT,LITU_USDT,ZEN_USDT,FIL_USDT,AAVE_USDT,KSM_USDT,EGLD_USDT,TRB_USDT,CRV_USDT, BAL_USDT, DOT_USDT, SNX_USDT, WAVES_USDT, RLC_USDT, BAND_USDT, KAVA_USDT, SXP_USDT, OMG_USDT, ZRX_USDT, ALGO_USDT, THETA_USDT, QTUM_USDT, BAT_USDT, IOTA_USDT, ONT_USDT, XTZ_USDT, EOS_USDT, XRP_USDT, ICP_USDT, NEO_USDT, ATOM_USDT, BNB_USDT, LINK_USDT, ETC_USDT, BNB_USDT, YFII_USDT, YFI_USDT, DEFI_USDT, MKR_USDT, COMP_USDT, ZEC_USDT, DASH_USDT, XMR_USDT, LTC_USDT, BCH_USDT, ETH_USDT, BTC_USDT] list1=[ALICE_USDT,DODO_USDT,UNFI_USDT,LITU_USDT,ZEN_USDT,FIL_USDT,AAVE_USDT,KSM_USDT,EGLD_USDT,TRB_USDT,CRV_USDT, BAL_USDT, DOT_USDT, SNX_USDT, WAVES_USDT, RLC_USDT, BAND_USDT, KAVA_USDT, SXP_USDT, OMG_USDT, ZRX_USDT, ALGO_USDT, THETA_USDT, QTUM_USDT, BAT_USDT, IOTA_USDT, ONT_USDT, XTZ_USDT, EOS_USDT, XRP_USDT] list2=[ICP_USDT,NEO_USDT,ATOM_USDT,BNB_USDT,LINK_USDT,ETC_USDT,BNB_USDT] list3=[YFII_USDT,YFI_USDT,DEFI_USDT,MKR_USDT,COMP_USDT,ZEC_USDT,DASH_USDT,XMR_USDT,LTC_USDT,BCH_USDT,ETH_USDT,BTC_USDT] if currency1 in list1: 이 식은 if currency1 in list2: 이 식은 if currency1 in list3: 이 식은 if currency1 not in all_BV1list: if currency1 not in all_BV1list: 이 식은 0과 같습니다. # 가격 정밀 계산 if currency1!= YFI_USDT: RR1=str ((ticker1[Last]) content1=RR1.split ((".") [-1] weishu1=len ((content1)) CV1=weishu1 else: CV1 = 0 global n1 account1=_C (exchange.GetAccount) walletbalance=account1 [Balance] [walletbalance=account1] [Balance] [Balance] [Balance] [Balance] [Balance] [Balance] [Balance] [Balance] P는 0.01입니다P0float (지갑 잔액) n1=round ((P/ticker1[Last],BV1) if n1==0: n1=n1+10**(-BV1)

def main ((): while True: while True: while True: 글로벌 i 범위에 있는 i (i) 를 위해 (len (exchanges)): 거래소[i].SetContractType ((swap) 정확성 (() 거래소[i].SETMARGINLEVEL ((M)) 틱어1=_C(교환[i].GetTicker) 화폐1=_C(거래소[i].GetCurrency) 포지션1=_C (거래) [i].GetPosition) r=_C(교류[i].GetRecords) 만약 r와 len®>9인 경우: EMA=TA.EMA ((r,A2) EMA2=TA.EMA(r,A3) longsignal=EMA[-3]EMA2[-2] shortsignal=EMA[-3]>EMA2[-3] 및 EMA[-2]

                    if longsignal: #1分钟金叉
                        Log(currency1,'多头信号成立')
                        exchanges[i].SetDirection('buy')
                        exchanges[i].Buy(-1,n1)
                        Log('倒数第二个EMA2:',EMA2[-2],'倒数第三个EMA2:',EMA2[-3])
                        Log('倒数第二个EMA1:',EMA[-2],'倒数第三个EMA1:',EMA[-3])
                        
                        
                    #开空信号
                    if shortsignal: #1分钟死叉
                        Log(currency1,'空头信号成立')
                        exchanges[i].SetDirection('sell')
                        exchanges[i].Sell(-1,n1)
                        Log('倒数第二个EMA2:',EMA2[-2],'倒数第三个EMA2:',EMA2[-3])
                        Log('倒数第二个EMA1:',EMA[-2],'倒数第三个EMA1:',EMA[-3])
                        
                if len(position1)==1:
                    if position1[0]["Type"]==0:
                        if ticker1["Last"]>position1[0].Price+K3:
                            Log(currency1,'多头触发止盈')
                            exchanges[i].SetDirection('closebuy')
                            exchanges[i].Sell(-1,position1[0].Amount)
                            Log('倒数第二个EMA2:',EMA2[-2],'倒数第三个EMA2:',EMA2[-3])
                            Log('倒数第二个EMA1:',EMA[-2],'倒数第三个EMA1:',EMA[-3])
                            
                        if ticker1["Last"]<position1[0].Price-K2:
                            Log(currency1,'多头触发止损')
                            exchanges[i].SetDirection('closebuy')
                            exchanges[i].Sell(-1,position1[0].Amount)
                            Log('倒数第二个EMA2:',EMA2[-2],'倒数第三个EMA2:',EMA2[-3])
                            Log('倒数第二个EMA1:',EMA[-2],'倒数第三个EMA1:',EMA[-3])
                            
                    if position1[0]["Type"]==1:
                        if ticker1["Last"]<position1[0].Price-K3:
                            Log(currency1,'空头触发止盈')
                            exchanges[i].SetDirection('closesell')
                            exchanges[i].Buy(-1,position1[0].Amount)
                            Log('倒数第二个EMA2:',EMA2[-2],'倒数第三个EMA2:',EMA2[-3])
                            Log('倒数第二个EMA1:',EMA[-2],'倒数第三个EMA1:',EMA[-3])
                            
                        if ticker1["Last"]>position1[0].Price+K2:
                            Log(currency1,'空头触发止损')
                            exchanges[i].SetDirection('closesell')
                            exchanges[i].Buy(-1,position1[0].Amount)
                            Log('倒数第二个EMA2:',EMA2[-2],'倒数第三个EMA2:',EMA2[-3])
                            Log('倒数第二个EMA1:',EMA[-2],'倒数第三个EMA1:',EMA[-3])
                            
        Sleep(S)

더 많은

작은 꿈바우다 또는 알바다에서 검색하는 EMA 알고리즘, 이러한 반복 알고리즘에서 계산되는 지표 값은 전송되는 데이터의 크기와 관련이 있습니다 (즉, K선 기둥의 수). 기둥의 수가 많을수록 계산이 더 가깝습니다. EMA100을 계산하면 기본적으로 동일합니다. EMA200은 약간의 오류가 있습니다.