请教大神,均价盈利300点启动均价保本点数50点,怎么写
extern int 均价保本启动点数=300;extern int 均价保本点数=50;
===========================================
if(是否开启均价止损==true)
{
on_off=false;
move_sl();
for(i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==识别码3)
{
if(OrderType()==OP_BUY)
{
if(OrderStopLoss()==0 && 最后的多单价格>Ask-均价止损点数*Point)
{
double slp=Ask-均价止损点数*Point;
if(!OrderModify(OrderTicket(),OrderOpenPrice(),slp,OrderTakeProfit(),0))
Print(" 修改多均价止损");
}
if(NormalizeDouble(OrderTakeProfit()-btpp,8)!=0)
{
if(!OrderModify(OrderTicket(),OrderOpenPrice(),bslpp,btpp,0))
Print(" 修改多均价止盈成功");
}
if(OrderStopLoss()<最后的多单价格 && (Ask-多第一单开单价格>均价保本点数*Point) && 均价保本点数>0 && (OrderTakeProfit()-(均价止盈点数-均价保本启动点数)*Point)<Ask)
{
slp=多第一单开单价格+均价保本点数*Point;
if(!OrderModify(OrderTicket(),OrderOpenPrice(),slp,OrderTakeProfit(),0))
Print(" 修改多均价保本止损成功");
}
}
if(OrderType()==OP_SELL)
{
if(OrderStopLoss()==0 && 最后的空单价格<Bid+均价止损点数*Point)
{
slp=Bid+均价止损点数*Point;
if(!OrderModify(OrderTicket(),OrderOpenPrice(),slp,OrderTakeProfit(),0))
Print(" 修改空均价止损成功");
}
if(NormalizeDouble(OrderTakeProfit()-stpp,8)!=0)
{
if(!OrderModify(OrderTicket(),OrderOpenPrice(),sslpp,stpp,0))
Print(" 修改空均价止盈成功");
}
if(OrderStopLoss()> 最后的空单价格 && 空第一单开单价格-Bid>均价保本点数*Point && 均价保本点数>0 && (OrderTakeProfit()+(均价止盈点数-均价保本启动点数)*Point)>Bid)
{
slp=空第一单开单价格-均价保本点数*Point;
if(!OrderModify(OrderTicket(),OrderOpenPrice(),slp,OrderTakeProfit(),0))
Print(" 修改空均价保本止损成功");
}
}
}
}
}
}
问ai他就写出来了 // 假设您使用的交易平台支持MQL4或MQL5语言
// 初始化函数
int OnInit() {
// 设置均价盈利目标和保本点数
double profit_target = 300.0; // 均价盈利目标
double stop_loss = 50.0; // 启动均价保本点数
// 创建订单
if (OrderSend(NULL, OP_BUY, 1, Ask, 1, NULL, NULL, profit_target, stop_loss) > 0) {
return INIT_SUCCEEDED;
} else {
return INIT_FAILED;
}
}
// 图表事件处理函数
void OnChartEvent(int event_type, const void* event_data) {
// 检查是否达到均价盈利目标
if (event_type == EVENT_PRICE && event_data != NULL) {
double current_price = *(double*)event_data;
double profit = current_price - Ask; // 计算当前盈利
if (profit >= profit_target) {
// 达到均价盈利目标,启动保本点策略
if (OrderSend(NULL, OP_CLOSE, 1, Ask, 1, NULL, NULL, profit_target, stop_loss) > 0) {
Print("已达到均价盈利目标,启动保本点策略。");
} else {
Print("未能启动保本点策略,请检查订单状态。");
}
}
}
}
页:
[1]