Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 89
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
подскажите как определить время дневной торговли фьючём?
MarketInfo(Symbol(),MODE_STARTING)
MarketInfo(Symbol(),MODE_EXPIRATION)
выдаёт нули
какой брокер ?
собственно говоря как брокер настроит. так что в первую очередь надо пытать его.
Уважаемые форумчане! Как прописать в советнике условие пересечения ценой линии канала, скажем, цена сверху пересекает линию канала и сделка открывается или закрывается? Прошу обратить внимание, что интересует именно момент этого пересечения. Буду признателен за помощь.
double price0=NormalizeDouble(ObjectGetValueByShift("ИмяВащейЛинииКанала", 0),Digits)); - значение Вашей линии на баре 0.
double price1=NormalizeDouble(ObjectGetValueByShift("ИмяВащейЛинииКанала", 1),Digits)); - значение Вашей линии на баре 1.
Ну и самый простецкий способ определить момент пробития на нулевом баре: if(High[0]>price0 && High[1]<=price1) {линия пробита вверх}, if(Low[0]<price0 && Low[1]>=price1) {линия пробита вниз}. ifы будут TRUE c момента пробития до конца текущего бара. Желательно чтобы Ваша линия канала имела свойство OBJPROP_RAY==True
Уважаемые форумчане! Как прописать в советнике условие пересечения ценой линии канала, скажем, цена сверху пересекает линию канала и сделка открывается или закрывается? Прошу обратить внимание, что интересует именно момент этого пересечения. Буду признателен за помощь.
Парочка способов:
Если Ask > линии канала и Low[1] <=линии канала, то пересечение вверх
Если Bid < линии канала и High[1] >=линии канала, то пересечение вниз
Можно проверять при помощи МА с периодом 1
. Я наверное некорректно поставил вопрос, нужно было приложить часть кода. Исправляюсь.
По предложению
artmedia70 пересечение на закрытие указал так. Сделку закрывает согласно скрина. Но нужно, чтобы сделка была закрыта где крестик
void CheckForClose()
{
double PriceHigh, PriceLow;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) return;
PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) continue;
//---- check order type
if(OrderType()==OP_BUY)
{
if(Low[1]<=PriceHigh && Ask>=PriceHigh ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
break;
}
if(OrderType()==OP_SELL)
{
if(High[1]>=PriceLow && Bid<=PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
break;
}
}
//----
}
как можно выбрать в программе последний ЗАКРЫТЫЙ ордер и получить от него информацию?
Найдете все, что душе угодно.
Благодарю за помощь
. Я наверное некорректно поставил вопрос, нужно было приложить часть кода. Исправляюсь.
По предложению
artmedia70 пересечение на закрытие указал так. Сделку закрывает согласно скрина. Но нужно, чтобы сделка была закрыта где крестик
void CheckForClose()
{
double PriceHigh, PriceLow;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) return;
PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) continue;
//---- check order type
if(OrderType()==OP_BUY)
{
if(Low[1]<=PriceHigh && Ask>=PriceHigh ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
break;
}
if(OrderType()==OP_SELL)
{
if(High[1]>=PriceLow && Bid<=PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
break;
}
}
//----
}
ExtremeTMA - безбожно перерисовывают. Причём здоровенный кусок истории - баров 30 последних, если не больше. Писал по нему советника - лажа. Представьте себе: появился сигнал, вошли по нему, а спустя некоторое время этого сигнала на истории уже нет - индюк перерисовался и оказывается - зря входили
При определении пересечения вы допустили ошибку: if(Low[1]<=PriceHigh && Ask>=PriceHigh ) ... нужно так if(Low[1]<=PriceHigh && Ask>PriceHigh ) ... ну и для противоположного по аналогии.
ЗЫ Код вставляйте при помощи кнопочки SRC на панельке вверху окна ввода вашего сообщения
ЗЗЫ Ну и где скрин с крестиком?
ExtremeTMA - безбожно перерисовывают. Причём здоровенный кусок истории - баров 30 последних, если не больше. Писал по нему советника - лажа. Представьте себе: появился сигнал, вошли по нему, а спустя некоторое время этого сигнала на истории уже нет - индюк перерисовался и оказывается - зря входили
При определении пересечения вы допустили ошибку: if(Low[1]<=PriceHigh && Ask>=PriceHigh ) ... нужно так if(Low[1]<=PriceHigh && Ask>PriceHigh ) ... ну и для противоположного по аналогии.
ЗЫ Код вставляйте при помощи кнопочки SRC на панельке вверху окна ввода вашего сообщения
Исправил, закрыл сделку так же как и на скрине выше, а надо где красный крестик.
согласен, что ExtremeTMA перерисовывает, но полагаю что это не влияет на поиск точек входа, здесь главное фильтры. Я использовал индикатор TDI. Чего наколдовал прикладываю (сразу говорю, что руки у меня кривые, поэтому проект советник под стать рукам). Одна проблема с ним, в тестере 1 год тестирует часов 5 (где то закралась ошибка). Если не сложно посмотрите на предмет ошибок.
Исправил, закрыл сделку так же как и на скрине выше, а надо где красный крестик.
согласен, что ExtremeTMA перерисовывает, но полагаю что это не влияет на поиск точек входа, здесь главное фильтры. Я использовал индикатор TDI. Чего наколдовал прикладываю (сразу говорю, что руки у меня кривые, поэтому проект советник под стать рукам). Одна проблема с ним, в тестере 1 год тестирует часов 5 (где то закралась ошибка). Если не сложно посмотрите на предмет ошибок.
Пока не смотрел на предмет ошибок - дел полно.
Для того, чтобы закрыть Sell там, где красный крестик, нужно проверять на текущем баре. Если Ask<=уровню закрытия && High[1]>уровня закрытия