Помогите посмотреть на проблему с перекрестным сигналом.

Автор:Откуда?, Создано: 2021-11-04 11:34:33, Обновлено:

Существуют два параметра эма, эма1 ((A2) и эма2 ((A3), когда одна из настроек эма больше 100, то в реальном времени fmz не совпадает с значениями бианана, что приводит к тому, что сигнал открытия будет заранее или задержан на 5-10 к-код.

""Обратная проверка Начало: 2021-11-01 00:00:00 Конец: 2021-11-02 00:00:00 Период: 5м БазаПериод: 1м eid:Futures_Binance,currency:BTC_USDT}] args: [[M,8],[A2,100],[A3,200],[K3,500],[K2,300]] "

def accuracy ((): # получение точности биржи global BV1, CV1 exchanges[i].SetContractType ((swap кнопка)) 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, Одновременно с этим, они также могут быть использованы в различных формах, в том числе: 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, БНБ_USDT, LINK_USDT, ETC_USDT, BNB_USDT, YFII_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 в списке 1: BV1 = 1 if currency1 в списке 2: BV1 = 2. if currency1 в списке 3: BV1 = 3. if currency1 not in all_BV1list: если currency1 не во всем_BV1list: BV1 = 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 [ Баланс] P = 0.01P0float (баланс в кошельке) n1=round ((P/ticker1[Last],BV1) если n1==0: n1=n1+10**(-BV1)

def main ((): пока True: глобальный i для i в диапазоне ((len ((обмены)): обмены[i].SetContractType ((swap) точность ((() обменные пункты[i].Установка уровня маржи ((M) ] ticker1=_C(обмены[i].GetTicker) currency1=_C(обмены[i].GetCurrency) position1=_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] короткий сигнал=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 в Baidu, то вы найдете, что значение показателя, рассчитанного таким алгоритмом, зависит от размера передаваемых данных (т.е. количества K-линейных столбцов). Чем больше число столбцов, тем ближе вычисление. Вы можете рассчитать EMA100 в основном одинаково.