Necron>>: Народ, кто может подсказать. Вчера делал советника по уровням Мюррея. Там смысл такой, что от уровней 8/0 и 0/8 надо продавать/покупать, а TP на пивот. Я использовал ObjectGet() чтобы получить линии, т.к. другого способа не нашел. Проблема в том, что если снижается волатильность, то уровни перерисовываются, и что самое главное автоматически меняется и TP. А менятся по ТС не должен. А вот как сделать чтоб TP не менялся? Заранее благодарен за помощь.
声明一个变量
bool ret;
循环之前
snowman647, huh?)
编译没有问题,算法出了问题。
snowman647, huh?)
编译没有问题,算法出了问题。
可能需要观察新职位是如何开启的。
Наверно надо смотреть как открываются новые позиции
它确实打开了,但它不愿意关闭)
关闭算法一定有问题。
代码是最简单的,难道有经验的程序员都不明白哪里出了问题吗?)
它确实打开了,但它不愿意关闭)
关闭算法一定有问题。
代码是最简单的,难道有经验的程序员都不明白哪里出了问题吗?)
如果开放不使用Magik,那么你怎么能通过Magik关闭。这就是为什么会出现这样的问题。
维宁,我的好兄弟)魔术师是值得的))。
extern double Lots=0.1;
int start()
{
bool ret;
double Ind11=iMA(NULL,0,12,0,0,0,0);
double Ind12=iMA(NULL,0,12,0,0,0,1);
if(Ind11>Ind12)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",16384,0,Green);
}
if(Ind11<Ind12)
{
for(ic=OrdersTotal()-1;ic>=0;ic--)
{
if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()==Symbol() && OrderMagicNumber()==16384)
{
if (OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),Bid,5,CLR_NONE);
if (OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,5,CLR_NONE);
}}
}
return(0);
}
Народ, кто может подсказать. Вчера делал советника по уровням Мюррея. Там смысл такой, что от уровней 8/0 и 0/8 надо продавать/покупать, а TP на пивот. Я использовал ObjectGet() чтобы получить линии, т.к. другого способа не нашел. Проблема в том, что если снижается волатильность, то уровни перерисовываются, и что самое главное автоматически меняется и TP. А менятся по ТС не должен. А вот как сделать чтоб TP не менялся? Заранее благодарен за помощь.
修正计算线和支点的算法
Vinin, уважаемый) магик то стоит))
extern double Lots=0.1;
int start()
{
bool ret;
double Ind11=iMA(NULL,0,12,0,0,0,0);
double Ind12=iMA(NULL,0,12,0,0,0,1);
if(Ind11>Ind12)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",16384,0,Green);
}
if(Ind11<Ind12)
{
for(ic=OrdersTotal()-1;ic>=0;ic--)
{
if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()==Symbol() && OrderMagicNumber()==16384)
{
if (OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),Bid,5,CLR_NONE);
if (OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,5,CLR_NONE);
}}
}
return(0);
}
用NormalizeDouble(Ask, Digits)代替Ask,用NormalizeDouble(Bid, Digits)代替Bid,就可以了。