为稳定盈利 提供动力

这里是我的工作总结和我感性上的碎碎念 3BFund Quant leader CFA 从业6Y Email: wongmanc@88.com

alpha因子市场波动性因子Market Volatility Factor(源码)


def close_positions(magic_number):
for i in range(OrdersTotal() – 1, -1, -1):
if OrderSelect(i, SELECT_BY_POS, MODE_TRADES):
if OrderSymbol() == Symbol() and OrderMagicNumber() == magic_number:
if as_0 == “buy” and OrderType() == OP_BUY:
if OrderTakeProfit() != tp:
OrderModify(OrderTicket(), OrderOpenPrice(), 0, tp, 0, Yellow)
elif as_0 == “sell” and OrderType() == OP_SELL:
if OrderTakeProfit() != tp:
OrderModify(OrderTicket(), OrderOpenPrice(), 0, tp, 0, Yellow)

def close_position_a(magic):
for i in range(OrdersTotal()):
if OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == True and OrderSymbol() == Symbol() and OrderMagicNumber() == magic:
if OrderProfit() > 0:
if OrderType() == OP_BUY:
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 30)
Alert(“Close buy position”)
if OrderType() == OP_SELL:
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 30)
Alert(“Close sell position”)

def risk_control_module(magic_A, magic_B, magic_C, magic_D, magic_E, magic_F, magic_G, magic_H, magic_I, magic_J, magic_K, magic_L):
if CCIFilter(TimeFrame_C) > 240 or CCIFilter(TimeFrame_C) < -240:
for magic in [magic_A, magic_B, magic_C, magic_D, magic_E, magic_F, magic_G, magic_H, magic_I, magic_J, magic_K, magic_L]:
close_position_a(magic)
Stop_Order = True

# 示例用法
magic_A = 123
magic_B = 456
magic_C = 789
magic_D = 101112
magic_E = 131415
magic_F = 161718
magic_G = 192021
magic_H = 222324
magic_I = 252627
magic_J = 282930
magic_K = 313233
magic_L = 343536

risk_control_module(magic_A, magic_B, magic_C, magic_D, magic_E, magic_F, magic_G, magic_H, magic_I, magic_J, magic_K, magic_L)

—————————————————————————————————————————————————————————-

在代码示例中,risk_control_module函数代表风控模块,根据特定条件关闭不同魔术数字的持仓。可以根据实际情况传入不同的魔术数字进行风控操作。

请替换示例中的魔术数字和其他参数为实际使用的值。