def mp ():
Posiciones = intercambio.Getposition ((()
si las posiciones de len == 0:
retorno 0
para i en el rango ((len)) de posiciones):
si (posiciones[i][Type] == PD_LONG) o (posiciones[i][Type] == PD_LONG_YD):
retorno 1
elif (posiciones[i][Type] == PD_SHORT) o (posiciones[i][Type] == PD_SHORT_YD):
retorno -1
Definición principal:
el cambio.SetContractType ((MA109
mientras True:
Los registros=intercambio.GetRecords()
si los registros son < 50: continuar
cierre = registros[len(registros) - 1].cierre
Posiciones = mp()
superior = TA.Más alto (registros, 50, Más alto)
más bajo = TA.Más bajo ((registros, 50, Bajo )
medio = (superior + inferior) / 2
Obj = ext.NewPositionManager (()
si las posiciones > 0 y cerradas < medias:
Obj.CobreTodo
si las posiciones < 0 y cerradas > medias:
Obj.CobreTodo
si las posiciones == 0:
si cerrado > superior:
Obj.0penlong ((MA109,1)
elf cerrado < inferior:
Obj.0penshort ((MA109,1)