def mp():
kedudukan = pertukaran.Getposition()
jika len ((posisi) == 0:
pulangan 0
untuk i dalam julat ((len)) kedudukan):
jika (posisi[i][Type] == PD_LONG) atau (posisi[i][Type] == PD_LONG_YD):
pulangan 1
elif (posisi[i][Type] == PD_SHORT) atau (posisi[i][Type] == PD_SHORT_YD):
pulangan -1
def utama (():
pertukaran.SetContractType ((MA109)
sementara True:
rekod=exchange.GetRecords()
jika len (rekod) < 50: teruskan
close = rekod[len(rekod) - 1].close
kedudukan = mp()
teratas = TA.Teratas (rekod, 50, Tinggi)
lebih rendah = TA.Terendah ((rekod, 50, Low)
tengah = (atas + bawah) / 2
obj = ext.NewPositionManager()
jika kedudukan > 0 dan dekat < tengah:
obj.CoverAll ((()
jika kedudukan < 0 dan dekat > tengah:
obj.CoverAll ((()
jika kedudukan == 0:
jika dekat > atas:
obj.0penlong ((MA109,1)
elif dekat < bawah:
obj.0penshort ((MA109,1)