ईएमए के क्रॉस सिग्नल के बारे में प्रश्नों को देखने में मदद करें

लेखक:माँ, बनाया गयाः 2021-11-04 11:34:33, अद्यतन किया गयाः

दो ईएमए पैरामीटर हैं, ईएमए 1 ((ए 2) और ईएमए 2 ((ए 3), जब इनमें से एक ईएमए सेटिंग 100 से अधिक होती है, तो एफएमजेड वास्तविक ड्राइव चलाने के दौरान ईएमए और विनान के मान के साथ मेल नहीं खाता है, (ईएमए 100 से कम होने पर सामान्य है), जिससे एक खुला संकेत 5-10 कोर के तारों को आगे बढ़ाता है या देरी करता है।

"'बैकटेस्ट प्रारंभः 2021-11-01 00:00:00 अंतः 2021-11-02 00:00:00 अवधिः 5m आधार अवधिः 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, 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: BV1 = 1 if currency1 in list2: BV1 = 2 if currency1 in list3: BV1 = 3 if currency1 not in all_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[Balance टैब] P = 0.01पी0फ्लोट (वॉलेट बैलेंस) n1=round ((P/ticker1[Last],BV1) यदि n1==0: n1=n1+10**(-BV1)

मुख्य परिभाषाः जबकि True: वैश्विक i श्रेणी में i के लिए ((len))) एक्सचेंजों): विनिमय[i].SetContractType ((swap) सटीकता एक्सचेंज[i].सेटमार्जिनलेवल(M) ticker1=_C(विनिमय[i].GetTicker) मुद्रा1=_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] 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)

अधिक

छोटे सपनेBaidu या EMA एल्गोरिदम की खोज करें, इस तरह के पुनरावर्ती एल्गोरिदम द्वारा गणना किए जाने वाले सूचक मानों और इनपुट डेटा की मात्रा के आकार के संबंध में हैं (यानी K लाइन स्तंभों की संख्या) । लाइन स्तंभों की संख्या जितनी अधिक होगी, गणना उतनी ही करीबी होगी । आप EMA100 की गणना मूल रूप से एक ही तरह से कर सकते हैं, EMA200 थोड़ा गलत है क्योंकि EMA200 की गणना करने के लिए अधिक लाइन स्तंभों की आवश्यकता होती है (K लाइन BAR) । इस तरह के बुनियादी अवधारणाएं Baidu में हैं, पता नहीं ।