Type/to search
0
Follow
0
Followers
Tolong bantu saya dengan isu membuka pesanan berdasarkan isyarat silang EMA
Help
Created 2021-11-04 11:34:33  
 1
 1344

Terdapat dua parameter ema, ema1 ((A2) dan ema2 ((A3), apabila salah satu daripada parameter ema lebih besar daripada 100, fmz tidak sesuai dengan nilai BTC ketika berjalan di cakera, ((ema kurang daripada 100 normal), menyebabkan isyarat pembukaan akan mengemas kini atau menunda 5-10 akar k.

'''backtest
start: 2021-11-01 00:00:00
end: 2021-11-02 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["M",8],["A2",100],["A3",200],["K3",500],["K2",300]]
'''

def accuracy ((): # mendapatkan ketepatan bursa
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
#Pengiraan harga yang tepat
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.01P0float(walletbalance)
n1=round(P/ticker1["Last"],BV1)
if n1==0:
n1=n1+10**(-BV1)

def main():
while True:
global i
for i in range(len(exchanges)):
exchanges[i].SetContractType('swap')
accuracy()
exchanges[i].SetMarginLevel(M)
ticker1=_C(exchanges[i].GetTicker)
currency1=_C(exchanges[i].GetCurrency)
position1=_C(exchanges[i].GetPosition)
r=_C(exchanges[i].GetRecords)
if r and len(r)>9:
EMA=TA.EMA(r,A2)
EMA2=TA.EMA(r,A3)
longsignal=EMA[-3]<EMA2[-3] and EMA[-2]>EMA2[-2]
shortsignal=EMA[-3]>EMA2[-3] and EMA[-2]<EMA2[-2]
if len(position1)==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)
Related Recommendations
Comment
All comments (1)

    百度或者知乎搜索下 EMA 算法, 这类迭代算法算出的指标值和传入的数据量大小有关(也就是K线线柱数量)。线柱数量越多,算出的越接近。你可以算算EMA100基本是一样的,EMA200有点误差就是因为EMA200 计算需要更多的线柱(K线BAR)。 这类基础概念百度下、知乎下就有。

    5 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)