def mp (():
Posições = troca.Getposition ((()
se len ((posições) == 0:
retorno 0
para i na faixa ((len ((posições):
se (posições[i][Type] == PD_LONG) ou (posições[i][Type] == PD_LONG_YD):
Retorno 1
elif (posições[i][Type] == PD_SHORT) ou (posições[i][Type] == PD_SHORT_YD):
retorno -1
def main (():
troca.SetContractType ((MA109)
enquanto True:
registros=exchange.GetRecords()
se os registos forem < 50: continuar
fechar = registos[len(records) - 1].fechar
Posições = mp()
superior = TA.Mais (recordes, 50, High)
Baixo = TA. Baixo ((recordes, 50, Baixo )
Médio = (superior + inferior) / 2
Obj = ext.NewPositionManager (()
Se as posições > 0 e fechar < meio:
Obj.CoverAll ((()
Se as posições < 0 e fechar > centro:
Obj.CoverAll ((()
se as posições == 0:
Se fechado > superior:
Obj.0penlong ((MA109,1)
elif close < inferior:
Obj.0penshort ((MA109,1)