def mp (():
позиции = обмен.Getposition ((()
если len ((позиции) == 0:
возвращение 0
для i в диапазоне (положениях):
если (позиции[i][Type] == PD_LONG) или (позиции[i][Type] == PD_LONG_YD):
возвращение 1
elif (позиции[i][Type] == PD_SHORT) или (позиции[i][Type] == PD_SHORT_YD):
возвращение -1
def main (():
exchange.SetContractType ((MA109)
пока True:
records=exchange.GetRecords ((()
если len ((записи) < 50: продолжать
закрыть = записи[len(записи) - 1].закрыть
позиции = mp()
верхний = TA.Самый высокий ((записи, 50, высокий)
Нижнее = TA.Нижнее ((записи, 50, Ниже)
средний = (верхний + нижний) / 2
obj = ext.NewPositionManager (()
если позиции > 0 и закрытие < среднее:
Объект.Объем Всего
если позиции < 0 и закрытие > средние:
Объект.Объем Всего
если позиции == 0:
если близко > верхнее:
обj.0penlong ((MA109,1)
elif близко < ниже:
Объект.0penshort ((MA109,1)