Суть вопроса: Как получить тикет ордера котоый получаем на выходе (в первом случае "3", во втором "2), эти функции возвращают только true/false?
Только поиском ордера с самым большим тикетом после совершения операции?
Не обязательно тикетом. Можно отыскать ордер, у которого время открытия самое большое.
Неприемлимо
Обоснуйте
Не обязательно тикетом. Можно отыскать ордер, у которого время открытия самое большое.
Смотри в сторону комента к ордеру. Первичный ордер его не имеет и для второго твоего варианта прикрытия позиции, будет в самый раз - частично прикрытому ордеру, сервак обычно в коменты пишет старый тикет. По поводу OrderCloseBy - ниче сказать не могу, не пробовал такого варианта.
У мну вот проблем-с на ровном месте образовался (спрошу тут, чтоб пачку тем не плодить), не пойму в чем шутка и почему не работает такой вот примитив:
double FindPoint(string Line)
{
double Price_Line = ObjectGetValueByShift(Line,0);
// if (MathAbs(Price_Line-Bid)/Point < Delta)
if(High[0]>=Price_Line>=Low[0])
{
ObjectDelete(Line);
Alert("Цена пересечения: ",Price_Line," Объект уничтожен!");
return(Price_Line);
}
return(0);
}
Вроде обычная функция, цена точки на тренде определяется, хай и лоу тож на месте, а условие упорно не желает выполняться... Если переставить комент с одного уловия на другое - то все работает, но интересует вариант именно с хаем и лоу, что сейчас без комента...
Смотри в сторону комента к ордеру. Первичный ордер его не имеет и для второго твоего варианта прикрытия позиции, будет в самый раз - частично прикрытому ордеру, сервак обычно в коменты пишет старый тикет. По поводу OrderCloseBy - ниче сказать не могу, не пробовал такого варианта.
У мну вот проблем-с на ровном месте образовался (спрошу тут, чтоб пачку тем не плодить), не пойму в чем шутка и почему не работает такой вот примитив:
double FindPoint(string Line)
{
double Price_Line = ObjectGetValueByShift(Line,0);
// if (MathAbs(Price_Line-Bid)/Point < Delta)
if(High[0]>=Price_Line>=Low[0])
{
ObjectDelete(Line);
Alert("Цена пересечения: ",Price_Line," Объект уничтожен!");
return(Price_Line);
}
return(0);
}
Вроде обычная функция, цена точки на тренде определяется, хай и лоу тож на месте, а условие упорно не желает выполняться... Если переставить комент с одного уловия на другое - то все работает, но интересует вариант именно с хаем и лоу, что сейчас без комента...
if((High[0]>=Price_Line)&&( Price_Line >=Low[0]) ) Иначе Вы сравниваете результат операции сравнения с числом. В сам алгоритм не вникал.
Вторые скобки ни к чему:
if (High[0]>=Price_Line && Price_Line >=Low[0]) { }
Вторые скобки ни к чему:
if (High[0]>=Price_Line && Price_Line >=Low[0]) { }
Вторые скобки ни к чему:
if (High[0]>=Price_Line && Price_Line >=Low[0]) { }
Ещё как к чему. Поверьте. Вы не знаетет как работает компилятор. Поэтому скобки лучше ставить - это довольно хорошая (читай полезная) привычка.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Имеем следующую ситуацию: есть ордер с тикетом "1", хотим закрыть половину его объема, используем любую из двух методик:
1) открываем ордер "2" половинным объемом в обратную сторону, используем функцию OrderCloseBy, на выходе получаем ордер "3"
2) используем функцию OrderClose и ставим в 2 раза меньший объем, на выходе получаем ордер "2"
Суть вопроса: Как получить тикет ордера котоый получаем на выходе (в первом случае "3", во втором "2), эти функции возвращают только true/false?
Только поиском ордера с самым большим тикетом после совершения операции?
Имеем стратегию которая предполагает закрытие части имеющейся позиции и дальнейшее ее сопровождение, надо реализовать так чтобы не терять полтора спреда.