int start() { if (DistMarketAndPos()>150) { OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Ask+150*Point);Если DistMarketAndPos()>150 то установить бай-ордер. Сами подумайте как изменить это на открытие противоположной позиции
Если DistMarketAndPos()>150 то установить бай-ордер. Сами подумайте как изменить это на открытие противоположной позиции
Перевернуть то я перевернул, а как сделать чтобы две половины работали вместе?
одна строка не работает, к ней комментарий ниже
extern int TakeProfit = 150;
extern double Lot = 0.01;
extern int MAGIC=1234;
int start()
{
if (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,Ask+TakeProfit*Point);
}
return(0);
}
int DistMarketAndPos(string sy="", int op=OP_BUY, int mn=-1)
{
double d, p;
int i, k=OrdersTotal(), r=1000000;
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "")<0) p=0.00001; else p=0.01;
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if ((OrderSymbol()==sy) && (op<0 || OrderType()==op))
{
if (mn<0 || OrderMagicNumber()==mn)
{
if (OrderType()==OP_BUY)
{
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL)
{
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
//----------------------------------------------------------------------------------------------------------------------------------------------
if (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_SELL,Lot,Ask,3,0,Ask-TakeProfit*Point);
}
return(0);
{
int DistMarketAndPos(string sy="", int op=OP_SELL, int mn=-1) //эта строка даёт 1 ошибку,
//если эту строку убрать,
//то компилируется, но тогда
//я не выставлю op=OP_SELL,
//а без неё советник будет думать,
//что ордер от которого нужно вычислить
//дистанцию OP_BUY
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "")<0) p=0.00001; else p=0.01;
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if ((OrderSymbol()==sy) && (op<0 || OrderType()==op))
{
if (mn<0 || OrderMagicNumber()==mn)
{
if (OrderType()==OP_BUY)
{
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL)
{
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return(r);
return(r);
}
}
//-------------------------------------------------------------------------------------------
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Помогите пожалуйста, не могу перевернуть, За ранее спасибо.
}
//Все что выше, компилируется без ошибок и открывает сделку как надо, без нижней части. Добавляю нижнюю часть
//в перевернутом виде и все, ошибка на ошибке. Корректирую, компилирую, выдает одну ошибку, ноль, ни как.
//-------------------------------------------------------------------------------------------