Ajuda-me a ver o problema da ligação de sinais cruzados.

Autora:A mãe está, Criado: 2021-11-04 11:34:33, Atualizado:

Existem dois parâmetros de ema, ema1 ((A2) e ema2 ((A3), quando uma das configurações de ema é maior que 100, o ema não coincide com o valor de Binance quando o fmz está em execução, (uma norma quando é menor que 100), causando o sinal de abertura antecipar ou atrasar 5 a 10 kbit.

"'Teste de regresso início: 2021-11-01 00:00:00 Fim: 2021-11-02 00:00:00 Período: 5m BasePeriodo: 1m As trocas: [{eid:Futures_Binance,currency:BTC_USDT}] args: [[M,8],[A2,100],[A3,200],[K3,500],[K2,300]] "

def accuracy ((): # obter a precisão da troca global BV1, CV1 exchanges[i].SetContractType ((swap botão) currency1=_C ((exchanges[i].GetCurrency) Ticker1=_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, Os modelos BAL_USDT, DOT_USDT, SNX_USDT, WAVES_USDT, RLC_USDT, BAND_USDT, KAVA_USDT, SXP_USDT, OMG_USDT, ZRX_USDT, ALGO_USDT, Os modelos mais usados são o THETA_USDT, o QTUM_USDT, o BAT_USDT, o IOTA_USDT, o ONT_USDT, o XTZ_USDT, o EOS_USDT, o XRP_USDT, o ICP_USDT, o NEO_USDT, o ATOM_USDT, e o EOS_USDT. Os símbolos do BNB_USDT, do LINK_USDT, do ETC_USDT, do BNB_USDT, do YFII_USDT, do YFI_USDT, do DEFI_USDT, do MKR_USDT, do COMP_USDT, do ZEC_USDT, do 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, Os modelos 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: BV1 é igual a 1. if currency1 in list2: BV1 é igual a 2. se currency1 in list3: BV1 é igual a 3. if currency1 not in all_BV1list: BV1 é igual a 0. #Preços precisos calculados If currency1! = YFI_USDT RR1=str ((ticker1[Last]) content1=RR1.split ((".") [-1] Weishu1 = len ((content1) CV1 =weishu1 else: CV1 é igual a 0. global n1 account1=_C (exchange.GetAccount) Walletbalance=account1 [ Balance] P é igual a 0.01.P0float (balanço da carteira) n1=round ((P/ticker1[Last],BV1) se n1==0: n1=n1+10**(-BV1)

def main ((): enquanto True: Global i para i no intervalo ((len ((exchanges)): As trocas[i].SetContractType ((swap) precisão ((( As trocas[i].SetMarginLevel(M) ticker1=_C(exchanges[i].GetTicker) moeda1=_C(exchanges[i].GetCurrency) posição1=_C ((exchanges[i].GetPosition) r=_C(exchanges[i].GetRecords) se r e len®>9: EMA=TA.EMA(r,A2) EMA2=TA.EMA(r,A3) longsignal=EMA[-3]EMA2[-2] O número de sinais de emergência deve ser igual ou superior a 10 em relação ao número de sinais de emergência. se len ((posição1)==0:

                    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)

Mais.

Sonhos pequenosO número de colunas de linha K é o mais próximo. Você pode calcular o EMA 100 basicamente da mesma forma, o EMA 200 é um pouco errado porque o cálculo do EMA 200 requer mais colunas de linha (K line BAR).