//计算一个证券的未平仓订单数量 int CountOrder=0; for (int j=0; j<OrdersTotal(); j++) if (OrderSelect(j,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol() ==Symbol()CountOrder++;
//最后关闭的位置 的条数,或者-1,如果还没有打开 int BarLast=BarLastClosePose()。
и
//最后关闭位置的条数 int BarLastClosePose() { datetime t; int i;
for (i=0; i<OrdersHistoryTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { //if (OrderMagicNumber()!=Magic) continue; if (OrderSymbol()!=Symbol()) continue; if (OrderType()>1) continue; if (t<OrderCloseTime() ) t=OrderCloseTime(); } }
int start()
{
//---- int total,ticket; //объявил тотал и тикет int signal = signal_MACD(); //сигнал МАКД передает значение в сигнал
AnalyzeSignal(signal); //аналайз сигнал анализирует сигналint MACD[8] = {0,1,2,3,4,5,6,7}; //создал одномерный массив МАКД
MACD[0] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7);
///Бла-бла-бла
MACD[7] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);
total = OrdersTotal(); //тотал считает ордера///Тут большая жирная закрывающая скобка, если конечно следующая строчка это функцияint signal_MACD()
同志们,请帮助...我写了一个简单的代码,但在编译时,它说括号不平衡,但我已经数了300次了--一切都到位了
这个想法很简单--如果MACD高于(或低于)0的时间在7分钟以内,则开仓
检查此功能
p.s. 你是如何把剧本画得这么好的?
在你写答案时,有一个SRC按钮。
至于大括号,我有一个习惯,那就是指定近似大括号所指的内容
}//为
}// (信号...
至于方括号,我有个习惯,就是指定收尾的指代内容
}//为
}// (信号...
"根据口味和颜色......" - 但我必须承认,这种方法使代码中不必要的信息过多+需要花费时间编写额外的代码行+不能解决深度嵌套的问题(编号级别?)
更好地构造代码--如上面的例子
下午好,请教如何写一个条件,使开出一个订单后,第二个订单不能在同一个蜡烛上开出。我写了以下内容。
如果(...&& CountOrder<2 && (BarLast>1 || BarLast==-1))
{
OrderSend(Symbol(),OP_BUY,MinLot,Ask,0,VStopLossLong,0, "BUY: " ,MagicL,0,Green);
}
其中
//计算一个证券的未平仓订单数量
int CountOrder=0;
for (int j=0; j<OrdersTotal(); j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() ==Symbol()CountOrder++;
//最后关闭的位置 的条数,或者-1,如果还没有打开
int BarLast=BarLastClosePose()。
и
//最后关闭位置的条数
int BarLastClosePose()
{
datetime t;
int i;
for (i=0; i<OrdersHistoryTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
//if (OrderMagicNumber()!=Magic) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderCloseTime() ) t=OrderCloseTime();
}
}
return (iBarShift(Symbol(,Period(),t,true));
}
检查此功能
维宁,经核实,该功能一切正常...return(0)指的是起始函数,如果你不计入return'y所附的括号,你会得到14个括号......。单程7人
维宁,经核实,该功能一切正常...return(0)指的是起始函数,如果你不计入与return'y相连的括号,你会得到14个括号......。每个方向有7个。
将每个函数复制到一个单独的文件中,并验证编译,这有助于。
如果括号是正确的,那么请指出起点的结束和MACD信号的开始。
将每个函数复制到一个单独的文件中,并验证编译,这有助于。
如果括号是正确的,请指出起点结束和MACD信号开始的位置。
嗯...int signal_MACD()确实是一个函数...我真的不明白为什么有些函数要写在开始函数的外面,有些则写在里面......。有什么区别?