Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Функция DistMarketAndPos().
Ну вот! Пошли функции поинтереснее! Например, такая, которая возвращает расстояние в пунктах между рынком и ближайшей позицей. Более точный отбор проверяемых позиций задаётся внешними параметрами:
Функция DistMarketAndPos().
Ну вот! Пошли функции поинтереснее! Например, такая, которая возвращает расстояние в пунктах между рынком и ближайшей позицей. Более точный отбор проверяемых позиций задаётся внешними параметрами:
Уважаемый Игорь Ким, это очень хорошая функция, пытаюсь сделать так, чтобы она работала туда сюда и с помощью нее открывались ордера туда сюда, у меня одна ошибка ни как не могу от нее избавится, помогите ее исправить. комментарий к ошибке ниже
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);
}
}
//-------------------------------------------------------------------------------------------
СПАСИБО
Уважаемый Игорь Ким, это очень хорошая функция, пытаюсь сделать так, чтобы она работала туда сюда и с помощью нее открывались ордера туда сюда, у меня одна ошибка ни как не могу от нее избавится, помогите ее исправить. комментарий к ошибке ниже
СПАСИБО
Пробуй:
И с вопросами сюда ...
Функция MovingInWL().
Кто-нибудь может объяснить зачем выкладывать неработающие функции?
'LevelWLoss' - undeclared identifier
'LevelProfit' - undeclared identifier
'ModifyOrder' - function not defined
'LevelWLoss' - undeclared identifier
'LevelProfit' - undeclared identifier
'ModifyOrder' - function not defined
6 error(s), 0 warning(s)
и это внутри самой функции
Кто-нибудь может объяснить зачем выкладывать неработающие функции?
'LevelWLoss' - undeclared identifier
'LevelProfit' - undeclared identifier
'ModifyOrder' - function not defined
'LevelWLoss' - undeclared identifier
'LevelProfit' - undeclared identifier
'ModifyOrder' - function not defined
6 error(s), 0 warning(s)
и это внутри самой функции
Функция рабочая, но она вызывает функцию ModifyOrder которую надо добавить в код советника, и добавить также в советник переменные LevelWLoss и LevelProfit, типа так примерно
extern int LevelProfit = 1000;
extern int LevelWLoss = 50;
Огромное Вам спасибо за ТАКУЮ ветку на форуме. Самая большая благодарность lurii Tokman за функции. Лично я готов его почти приравнять к Страуструпу.
Спасибо Вам!
Функция GetAmountLotFromOpenPos().
Данная функция возвращает сумму лотов открытых позиций. Более точный отбор учитываемых позиций задаётся внешними параметрами:
Не возвращает!!!
как ни делаю, либо нули либо "event handling function not found 4.mq4 1 1
"
Огромное Вам спасибо за ТАКУЮ ветку на форуме. Самая большая благодарность lurii Tokman за функции. Лично я готов его почти приравнять к Страуструпу.
Спасибо Вам!