#1229

А почему он не должен открываться? Условия соблюдены: один ордер в рынке, условия на вход, видимо, тоже существуют..
Я изменения внес на скорую руку, буквально по заданным вопросам...
п.с. я про индикацию количества ордеров в рынке: а "нафига козе баян", если по условиям сетка не строится? Глазами сложно отличить? Или на одной паре разные совы работают? Изменения сделать не сложно, но зачем?

Цитата

Bar_analys = 800; // количество баров анализируемого периода.
ТФ не важен, важен отрезок времени. Просто подбирается количество баров под ТФ. пример На 1часе будет 200 баров, на 30мин 400 баров, на 15мин 800 на 5мин 2400 баров


В сове нет таких расчетов- чем выше ТФ, тем длиннее анализируемый период
#1230
А почему он не должен открываться? Условия соблюдены: один ордер в рынке, условия на вход, видимо, тоже существуют..
советник работает на отбой от границ канала когда цена внутри. вверху селл, внизу бай, центр ТП.
за пределами канала ордера не должны открываться, мы ждем когда цена вернется в канал.
я про индикацию количества ордеров в рынке: а "нафига козе баян", если по условиям сетка не строится? Глазами сложно отличить? Или на одной паре разные совы работают? Изменения сделать не сложно, но зачем?
мне для работы с одним ордером не нужна
В сове нет таких расчетов- чем выше ТФ, тем длиннее анализируемый период
вы спросили про рабочий ТФ, я написал, что можно работать на любом ТФ, просто под каждый ТФ надо выставлять определенное количество баров в ручную, автоматом ничего не меняется.
#1231


А почему он не должен открываться? Условия соблюдены: один ордер в рынке, условия на вход, видимо, тоже существуют..
советник работает на отбой от границ канала когда цена внутри. вверху селл, внизу бай, центр ТП.
за пределами канала ордера не должны открываться, мы ждем когда цена вернется в канал.


Эта логика соблюдалась ранее или я своим вмешательством ее нарушил?
Цитата


я про индикацию количества ордеров в рынке: а "нафига козе баян", если по условиям сетка не строится? Глазами сложно отличить? Или на одной паре разные совы работают? Изменения сделать не сложно, но зачем?
мне для работы с одним ордером не нужна


Убрать совсем?
Цитата

В сове нет таких расчетов- чем выше ТФ, тем длиннее анализируемый период
вы спросили про рабочий ТФ, я написал, что можно работать на любом ТФ, просто под каждый ТФ надо выставлять определенное количество баров в ручную, автоматом ничего не меняется.


Ну, допустим, во время работы советника на реалы Вы захотели посмотреть другой ТФ. После переключения ТФ вся арифметика канала слетит.
Оно Вам надо?
п.с. не в "тему": почему при ответе, если вставляешь из буфера обмена кусок текста, он самопроизвольно принимает какие-то настройки шрифта. Приходится руками удалять тэги форматирования. Честно говоря, задолбался. И появился этот глюк/фича относительно недавно...
#1232
Эта логика соблюдалась ранее или я своим вмешательством ее нарушил?
Эта логика соблюдалась ранее
Убрать совсем?
убирайте
Ну, допустим, во время работы советника на реалы Вы захотели посмотреть другой ТФ. После переключения ТФ вся арифметика канала слетит.Оно Вам надо?
у меня обычно 2 графика, 1чистый с совой, а другой со всякими индикаторами. мне не критично
не в "тему" это давно так, возможно такие настройки сайта.
#1233

Покапаю.
А какие настройки оптимальные для параметра "Количество баров" и на каком ТФ?

#1234

Bar_analys = 800; М15
В тестере так гоняю

#1235

Еще раз прошелся по логике совы:
1. Определяется канал по, допустим, 800 барам.
2. Находим среднюю линию.
3. От Средней линии отступаем n-пунктов вверх/вниз. Параметр Dist=200. Вот с этим каналом и работаем.
4. Если цена находится ниже нижней границы канала, то появляется сигнал на покупку.
5. В исходном коде, если цена шла против ордера, строилась сетка, но при установке фиксированного СЛ все время будет открываться ордер в том же направлении, что и последний закрытый по стопу ордер.

Я вижу выход в анализе пересечения ценой границы канала:
а) если пересекает нижнюю границу снизу вверх, то открываем БАЙ.
б) если цена пересекает верхнюю границу сверху вниз, то открываем СЕЛЛ.
Либо проверять, находится ли цена между центром и границей, т.е внутри канала, при этом желательно, чтобы ближе к границе.
Короче, от исходника останется только рисовалка линий :))

И еще не очень понял Ваше объяснение с картинкой: там упомянаются лимитники на расстоянии от средней линии, но в сове их нет...

#1236
1. Определяется канал по, допустим, 800 барам.
Да
2. Находим среднюю линию.
Да
3. От Средней линии отступаем n-пунктов вверх/вниз. Параметр Dist=200. Вот с этим каналом и работаем.
Да
4. Если цена находится ниже нижней границы канала, то появляется сигнал на покупку.

за пределами канала ничего не открываем, ждем когда зайдет в канал. работаем на отбой от границ канала
5. В исходном коде, если цена шла против ордера, строилась сетка, но при установке фиксированного СЛ все время будет открываться ордер в том же направлении, что и последний закрытый по стопу ордер.
если получили фикс СЛ- ничего не открываем. Сидим курим и ждем когда цена вернется во внутрь канала.
Я вижу выход в анализе пересечения ценой границы канала:
а) если пересекает нижнюю границу снизу вверх, то открываем БАЙ.

нет см. скрин
б) если цена пересекает верхнюю границу сверху вниз, то открываем СЕЛЛ.
нет см скрин
Либо проверять, находится ли цена между центром и границей, т.е внутри канала, при этом желательно, чтобы ближе к границе.
проверять находится ли цена между границами канала

И еще не очень понял Ваше объяснение с картинкой: там упомянаются лимитники на расстоянии от средней линии, но в сове их нет...
это я вручную проверял, как работает стратегия. На границы канала ставил СеллЛимит на верхнюю(красная линия) и БайЛимит на нижнюю(синяя линия)
http://fxpics.ru/images/2017/06/15/KANAL.jpg
#1237


п.с. не в "тему": почему при ответе, если вставляешь из буфера обмена кусок текста, он самопроизвольно принимает какие-то настройки шрифта. Приходится руками удалять тэги форматирования. Честно говоря, задолбался.
И появился этот глюк/фича относительно недавно...


если вы о цитировании выделенной части поста, то, после копирования, нажмите кнопку предварительного просмотра - обычно разворачивается окно полного редактора и копировавшийся/цитировавшийся текст визуализируется штатно.

Парни, вы бы сохраняли в боте имевшиеся возможности...
Улучшение/развитие полной версии бота может пригодиться многим, а усеченная пока нужна лишь одному.
Хотя бы не вырезайте, а комментируйте код...
#1238



п.с. не в "тему": почему при ответе, если вставляешь из буфера обмена кусок текста, он самопроизвольно принимает какие-то настройки шрифта. Приходится руками удалять тэги форматирования. Честно говоря, задолбался.
И появился этот глюк/фича относительно недавно...


если вы о цитировании выделенной части поста, то, после копирования, нажмите кнопку предварительного просмотра - обычно разворачивается окно полного редактора и копировавшийся/цитировавшийся текст визуализируется штатно.

Парни, вы бы сохраняли в боте имевшиеся возможности...
Улучшение/развитие полной версии бота может пригодиться многим, а усеченная пока нужна лишь одному.
Хотя бы не вырезайте, а комментируйте код...

Старик, я не о предварительном просмотре, а о ситуации, когда тест вставляешь из буфера и, к нему применяется произвольное форматирование.
По коду: я ничего не вырезал, Как раз комментировал, а по перспективности его развития есть ощущение, что будет рождаться что то типа Генерика.


Добавлено: 16-06-2017 09:52:36



если получили фикс СЛ- ничего не открываем. Сидим курим и ждем когда цена вернется во внутрь канала.

Этого условия не было изначально. Добавлю.
Цитата


Я вижу выход в анализе пересечения ценой границы канала:
а) если пересекает нижнюю границу снизу вверх, то открываем БАЙ.

нет см. скрин
б) если цена пересекает верхнюю границу сверху вниз, то открываем СЕЛЛ.
нет см скрин


Ну, на Ваш графический комментарий посылаю графические вопросы. (см скрин).
Как определить касание и отличить его от пробоя, и учесть, с какой стороны относительно линии подошла цена...?
Цитата


Либо проверять, находится ли цена между центром и границей, т.е внутри канала, при этом желательно, чтобы ближе к границе.
проверять находится ли цена между границами канала


если просто "внутри канала", то открытие около центральной линии не будет противоречить правилам.
Не сочтите за занудство, но лучше сразу проговорить все детали, чем потом по мере внесения изменений исправлять...

Q.jpg

Изменено 16 июня, 2017 пользователем usver73

#1239
Как определить касание и отличить его от пробоя, и учесть, с какой стороны относительно линии подошла цена...? неважно касание или пробой границы канала, главное чтоб это произошло из нутри канала. представьте, что на красной линии стоит СеллЛимит, а на сеней БайЛимит, что должно произойти чтоб они вошли в рынок. я не знаю как лучше обьяснить. Скрины с тестера










Сейчас только дошло, что я не могу увидеть в тестере, как цена входит в канал. У оригинала нет стопа и он закрывает ордера при касании белой линии(центра канала), то есть цена всегда находится внутри канала после закрытия ордера и перед открытием следующих ордеров. Если для вас будет проще, то можно выставлять лимитки на границах канала как только цена вошла в канал(свеча закрылась внутри канала и сразу ставятся лимитки как даст цена или допустим когда цена прошла 2-3(30новых)п от границы внутрь канала) главное чтоб они потом двигались вместе с каналом.
#1240

неважно касание или пробой границы канала, главное чтоб это произошло из нутри канала.


Ну вот, докопались до истины :)
#1241

Короче, попробовал по-разному: и с учетом направления движения цены и просто при касании ценой границы канала.
В первом случае было много пропусков: я так и не смог определиться с алгоритмом расчета направления цены. Пробовал сравнивать цену последнего закрытого бара на М1, пробовал сравнивать цену потиково. Либо медленно, либо пропуск момента касания ценой канала (если свечки на М1 маленькие, как правило меньше спрэда).
В случае просто касания границы канала (+/- 10 пп ) получился практически такой же результат, но гораздо быстрее.
ИМХО, без глобального изменения стратегии советник бестолковый.

AUDNZD_Flat_Lock.v3.1.mq413 скач.

#1242
usver73, вы писали, что индикация в окне не влияет на работу советника. Вчера при 2 открытых чужих ордерах, сов не открывал сделки. После их закрытия, открыл.


#1243


usver73, вы писали, что индикация в окне не влияет на работу советника. Вчера при 2 открытых чужих ордерах, сов не открывал сделки. После их закрытия, открыл.




Вы не поверите, но индикатор действительно не влияет на работу советника :))
Он просто отражает текущую ситуацию.
А вот наличие "чужих" ордеров, действительно, может ограничить работу советника.
Поправлю...

Добавлено: 27-06-2017 06:58:45

Вроде поправил, но проверить не могу- надо на демо гонять.
Если что, пишите..
И еще, sever51, Вы торгуете этим советником или есть результаты в тестере?
Поделитесь, может действительно стоящая идея? ;)

AUDNZD_Flat_Lock.v3.2.mq416 скач.

Изменено 27 июня, 2017 пользователем usver73

#1244

пока хвастаться нечем, в лучшем случае пила

#1245

А Вы пробовали другие советники, торгующие в канале? Тема, в общем то "избитая"...

#1246
usver73, большая часть построена на ББ или ТМА, этот сов привлек внимание оригинальностью построения канала.
#1247

Ну не знаю, что в нем оригинального...
1. запаздывает за счет большого кол-ва баров для анализа.
2. Ширина т.н. "рабочего" канала -жесткая и никак не коррелируется с основным торговым диапазоном, от которого строится. Т.е. цена вышла за "рабочий" канал и пошла к границе своего диапазона, от которого скорее всего и будет отбой (это если мы во флэте), а мы поймали стоплосс...

#1248

Здравствуйте, уважаемые программисты.
Сов открывает ордер в сторону пересечения гистограммы нулевого уровня по закрытию бара.

Поменяйте пожалуйста открытие ордеров не по рынку, при появлении сигнала, а чтобы сов выставлял лимитник, в стророну сигнала, на удалении от цены скажем на пунктов 100. И возможность прописывать комментарии к ордерам из настроек совы.

Заранее благодарю!

MACD_Cross_Martingale_EA_v301.mq417 скач.

Изменено 6 июля, 2017 пользователем remembaaa

#1249

Здравствуйте. Есть индикатор от советника Август Голем. Ломанный соаетник перестал работать. Помогите написать советник. Входы по сигналу. ПО одному сигналу на бар. При повторе сигнала, если идем не в нашу сторону так же открываем ордера. В общем делаем сетку, которую закрываем по обратному сигналу или по Общему ТП. ТФ 1 минута.
Можно вообще в советнике /sovetniki-foreks/11/sovetnik-martingeyl-survivor/15463/
заменить параметры входа на входы по прилагаемому индикатору, ну или добавить.
Сами сигналы появляются только пр прогоне в тестере. Нет стрелочек, только рисует какие-то кружочки.

AugustForexGolem_v2-i1.ex410 скач.

#1250

Здравствуйте, уважаемые!
Споткнулся на, казалось бы, обкатанной теме выставления общего ТП у всех ордеров сетки = Цена БУ+ nn - пипсов. На коротких сетках (1-2-3-4 ордера) ТП ставится правильно. Если сетка 8 и более ордеров, то результат - ТП от 3-5 пп до отрицательной величины. Какую-то зависимость выявить не смог. Свопы и комиссии ни при чем.
Вызывается установка ТП после открытия ордера:

int ticket=OpenOrder(Type_order,nextLots,OrderPrice,comment,Magic,clrLime);
if (ticket>0) SetTakeProfit(OP_BUY, false);

Функция SetTakeProfit:
void SetTakeProfit(int orderType, bool Zero)
{
double newTakeProfit =0;
int rezModif =false;
double PriceBE = GetPriceBE(orderType); //получение цены БУ
GetPriceBE_773(orderType); //вызов еще одной функции расчета БУ для сравнения результатов.
if (!Zero) //если не обнуление, то считаем новый ТП. Обнуление ТП работает при включении трала
{
int Base_TP = 0;//Base_TP;
int result = 0;
int Count_ord=0;
if (orderType==OP_BUY) {Count_ord=countBUY; Base_TP=TakeProfitB;}
if (orderType==OP_SELL) {Count_ord=countSELL;Base_TP=TakeProfitS;}
result = Base_TP;// не обращайте внимание на "лишние" переменные. Часть кода (не имеющего отношения к вопросу) вырезана для форума
if (orderType==OP_BUY ) newTakeProfit=NormalizeDouble(PriceBE + result*Point,Digits);
if (orderType==OP_SELL) newTakeProfit=NormalizeDouble(PriceBE - result*Point,Digits);
}
PutHLine(0,StringConcatenate("Beline",orderType),PriceBE,Color(orderType),0,2,false,"comment"); //рисуем линию БУ
//в цикле устанавливаем новый ТП для всех ордеров
for (int order=OrdersTotal()-1; order>=0; order--)
{
returnvalue=OrderSelect(order, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==orderType)
{
rezModif=ModifyOrder (OrderOpenPrice(),OrderStopLoss(),newTakeProfit, CLR_NONE);
}
}
}
//=========================================================================================


И, наконец, два варианта функции GetPriceBE (расчет цены БУ):
//=========================================================================================     
double GetPriceBE(int orderType)//расчет цены безубытка. Отдельно для БАЙ и СЕЛЛ
{
double TotalLots=0;
double TotalProfit=0;
double Price=0;
double avgPrice = 0;

for (int i=OrdersTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS))
{
if (OrderSymbol()==Symbol() && OrderType()==orderType && OrderMagicNumber()==Magic)
{
TotalLots += OrderLots();
TotalProfit += OrderProfit()+OrderCommission()+OrderSwap();
avgPrice += OrderOpenPrice()*OrderLots();
}
}
}
double TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);
if (orderType==OP_BUY && TotalLots>0) Price = NormalizeDouble(Bid-(TotalProfit/(TickValue*TotalLots)*Point),Digits);
if (orderType==OP_SELL && TotalLots>0) Price = NormalizeDouble(Ask+(TotalProfit/(TickValue*TotalLots)*Point),Digits);
Print(__FUNCTION__ , " : Price BE ", DoubleToStr(Price,Digits));
return(Price);
}

И вторая:
//===========расчет цены безубытка. Из версии 7.7.3 =================================== 
void GetPriceBE_773(int orderType)
{
double avgPrice = 0;
double sumLots = 0;
for (int order=OrdersTotal()-1; order >= 0; order--)
{
returnvalue=OrderSelect(order, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderType()==orderType && OrderMagicNumber()==Magic)
{
avgPrice += OrderOpenPrice()*OrderLots();
sumLots += OrderLots();
}
}
double newTakeProfit=avgPrice/sumLots;
Print(__FUNCTION__ , ": Price BE ", DoubleToStr(newTakeProfit,Digits));
}

Если в первой функции БУ убрать учет свопов и комиссии, то обе функции дают абсолютно одинаковый результат (по крайней мере на EURUSD).
Вот, прошу помощи у опытных программистов.
На всякий случай сова во вложении.
Заранее спасибо

Spring_V8.12.2.mq418 скач.

#1251

Здравствуйте!
Вторая функция расчета уровня безубытка выглядит правильно. В первой функции подсчитывается переменная double avgPrice, но после нигде в расчетах не участвует, за то в расчетах присутствует TickValue, который меняется по мере изменения курса пары. Думаю весь Ваш вопрос сводится к тому, что уровень безубытка на момент расчета правильный, но по мере того как изменяется курс пары, то изменяется и стоимость пункта инструмента (TickValue). Отсюда и неточность расчета уровня нулевого профита. И дальнейшая неточность расчета уровня общего тейка сетки. Видится выход в периодической корректировке этого уровня.

#1252


Здравствуйте!
Вторая функция расчета уровня безубытка выглядит правильно. В первой функции подсчитывается переменная double avgPrice, но после нигде в расчетах не участвует, за то в расчетах присутствует TickValue, который меняется по мере изменения курса пары. Думаю весь Ваш вопрос сводится к тому, что уровень безубытка на момент расчета правильный, но по мере того как изменяется курс пары, то изменяется и стоимость пункта инструмента (TickValue). Отсюда и неточность расчета уровня нулевого профита. И дальнейшая неточность расчета уровня общего тейка сетки. Видится выход в периодической корректировке этого уровня.


avgPrice- это наследие из второй функции, когда методом "научного тыка" таскал куски кода отовсюду, забыл почистить. Во втором способе расчета БУ не учитывается своп. И если в первой закомментировать своп и комиссию, то обе функции дают одинаковый результат (специально Принты в конце прописаны).
Что касается TickValue, то Ваше утверждение справедливо для кроссов и пар с прямой(?) котировкой (В тестере вообще не меняется, специально проверил). Косяк же проявляется на всех парах, в т.ч. где TickValue не меняется вообще (например, EURUSD). И перерасчет ТП по-сути происходит каждый раз при выставлении очередного ордера. В советнике можно включить ежесуточный пересчет ТП для компенсации свопов....не помогает.
#1253
DreamWorks ТП модифицируется практически в момент расчёта БУ, поэтому дальнейший курс роли не играет, имхо...
Я не нашёл ошибок, сам считаю по текущей просадке и стоимости пипса.
Немного смущает сам вопрос - при сетке более 8 ордеров становится неправильным расчёт БУ (в обоих случаях)? или косяк в дальнейшем расчёте ТП, или при модификации ордера? как Вы узнали о неправильном ТП у ордеров?

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025