что-то рановато
как отдохнёшь попробуй сделать мой вариант.
Пока ничего радикально нового для себя не увидел - да, сеточные стратегии работают, но время от времени сливают. Грааль? Закрытая ветка? Тайный заговор? Что с деньгами делать? - пока, к соожалению, нет повода для таких разговоров.
Пока что не дает профита ни в каком виде.
Версия бесспорно сырая, может в дальнейшем система будет совсем по-другому принципу работать. Я не говорю, что её сейчас ставить на реал надо. Меня попросили сделать бота по ТЗ - я сделал.
У меня есть три варианта алгоритма, которые разгоняют депо в 7 раз за две недели, а толку, если они через пару дней сливают всё? Есть варианты за полгода в 25 раз, в июле сливают. Не вижу смысла выкладывать мой позор на всеобщее обозрение.
Как знать Ребята, Как знать...
Все профитного времени суток. Плавно вольюсь в обсуждение . Гонял на тестере все три совы за 2012 год с разными настройками и увидел такую закономерность , при небольшом депо все три косят зелень как потерпевшие ,но когда депо увеличивается начинается слив . Думаю всё в %от депо . При большом депо совы начинают барзеть с лотом в итоге колян маржовый.
Пробовал смотреть на микрореале там вообще ничего не работает ни одной сделки не открывается(
Вот одна из Моих бредовых идей. Ставим стопы и лимиты на одни уровни. Т.е. через каждые 10пип у Нас стоит Бай и Селл, равные по объему. Сетка идет и вверх от цены и вниз. Первые ордера в 5 пип от цены, т.е. цена оказывается где-то в середине сетки. Далее для удобства осмысления пишу в еденицах.
Допустим цена пошла вверх на 100 ед. Мы имеем положительные замки на 100 ед. и столько же отрицательных. Закрываем все положительные, + 100 ед. Остаются открытые отрицательные -100 ед. И тут же востанавливаем закрытые ордера, т.е. ставим теже ордера на тоже место. Мы ничего не теряем и не зарабатываем т.к. сумма открытых ордеров в минус равна сумме закрытых в плюс, и если цена пошла дальше, Мы просто можем закрыть часть открытых отрицательных замков, для продолжения построения сетки вверх. Но вот, цена разворачивается, от уровня в 100 ед. и идет до уровня 70 ед. Те замки, что были отрицательны становятся положительными, а положительные отрицательными. Мы закрываем положительные + 30 ед. Остаются открытые минусовые ордера на - 100 ед. Но Мы уже закрывали +100 ед. и только, что закрыли + 30 ед. Итого +30 ед. Расчертите все на листке бумагт, там все наглядно видно.
Что мешает? Первое своевременное закрытие положительных, никто не знает когда цена развернется. Второе его величество спред. Это в идиальных условиях все хорошо работает, что будет со спредом, Я не знаю.
Подтяжка Стоп-ордеров вслед за ценой
//==================================================================
void ProcessPendingOrder(int Ticket)
{
double NewOpenPrice = 0;
double NewTP = 0;
if(Debug)
{
Print("Функция ProcessPendingOrder()");
Print("Пытаемся тянуть отложенный ордер.");
}
if(OrderSelect(Ticket, SELECT_BY_TICKET))
if(OrderCloseTime() == 0)
while (!IsStopped())
{
switch(OrderType())
{
case OP_BUYSTOP:
if(NormalizeDouble((OrderOpenPrice() - Ask) / Point, 0) > Dist + Step)
{
NewOpenPrice = NormalizeDouble(Ask + Dist * Point, Digits);
NewTP = NormalizeDouble(NewOpenPrice + TakeProfit * Point, Digits);
if(Debug)
{
Print("NewOpenPrice = ", NewOpenPrice);
Print("NewTP = ", NewTP);
}
}
else
{
if(Debug)
{
Print("Модификация ордера остановлена. Не выполнено условие.");
Print("Цена не вышла за установленную границу.");
}
return;
}
break; //Выходим из switch()
case OP_SELLSTOP:
if(NormalizeDouble((Bid - OrderOpenPrice()) / Point, 0) > Dist + Step)
{
NewOpenPrice = NormalizeDouble(Bid - Dist * Point, Digits);
NewTP = NormalizeDouble(NewOpenPrice - TakeProfit * Point, Digits);
if(Debug)
{
Print("NewOpenPrice = ", NewOpenPrice);
Print("NewTP = ", NewTP);
}
}
else
{
if(Debug)
{
Print("Модификация ордера остановлена. Не выполнено условие.");
Print("Цена не вышла за установленную границу.");
}
return;
}
break; //Выходим из switch()
default:
return; //Тип ордера не наш, вывыливаемся з функции нафиг.
}
//Проверка на ошибку с кодом 1
if(NewOpenPrice == NormalizeDouble(OrderOpenPrice(), Digits) &&
NewTP == NormalizeDouble(OrderTakeProfit(), Digits))
{
Print("Модификация ордера остановлена. Не пройдена проверка на ошибку с кодом 1.");
Print("OrderOpenPrice() = ", DoubleToStr(OrderOpenPrice(), 8), "; NewOpenPrice = ", NewOpenPrice);
Print("OrderTakeProfit() = ", DoubleToStr(OrderTakeProfit(), 8),"; NewTP = ", NewTP);
break; //Выходим из while()
}
if(IsTradeContextBusy())
{
Print("Торговый поток занят!");
Sleep(3000);
RefreshRates();
continue; //Возвращаемся в начало цикла while()
}
if(!IsTradeAllowed())
{
Print("Эксперту запрещено торговать! Снята галка в свойствах эксперта.");
break; //Выходим из while()
}
if(OrderModify(OrderTicket(), NewOpenPrice, OrderStopLoss(), NewTP, 0, CLR_NONE))
{
if(Debug) Print("Ордер #", OrderTicket(), "модифицирован успешно.");
break; //Выходим из while()
}
else
{
Print("Ордер не модифицирован. Код ошибки", GetLastError());
break; //Выходим из while()
}
}
return;
}
Все профитного времени суток. Плавно вольюсь в обсуждение . Гонял на тестере все три совы за 2012 год с разными настройками и увидел такую закономерность , при небольшом депо все три косят зелень как потерпевшие ,но когда депо увеличивается начинается слив . Думаю всё в %от депо . При большом депо совы начинают барзеть с лотом в итоге колян маржовый.
Пробовал смотреть на микрореале там вообще ничего не работает ни одной сделки не открывается(
мужики я боюсь за свои картинки, но всеже надо выложит, ИСТИНА ГДЕ ТО РЯДОМ
всем привет, примерно гдето так должно быть, или есть, немного покапалась в коде,кое4то дописала, на сколько хватила ума, но ето толко половина