Сов. по удвоению следующей сделки после убытка

От ss1975, 17 сентября, 2013 в Архив

Автор#1

Господа трейдеры, есть у кого сов по удвоению следующей сделки после убытка?

#2


Господа трейдеры, есть у кого сов по удвоению следующей сделки после убытка?


Илана попробуй, может подойдет. v:)
Автор#3

илан вроде как мартин в чистом виде, яж ищу переворотный мартин)

#4


илан вроде как мартин в чистом виде, яж ищу переворотный мартин)


Чебурашка, есть такой советник переворотный, у товарища Гилки есть Forex magic range)
Автор#5

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

5.jpg

#6

Возможно это надо поискать среду сов, сопровождающих сделку.

Автор#7

Да скорей всего это не кто не реализовал, если и реализовали то молчат, наверно хорошо получается))

#8

Envy вроде один из последних. Но вот только я крайне сомневаюсь, что мартин может быть безопасным

Автор#9

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

Автор#10

вот нашол переворотную функцию к советнику, правда после лося.
описание

Увеличивает лот после лося и профитных сделок даже при выключенном ММ
отключить любую функцию увеличения можно поставить значение Kloss = 0; или KProfit = 0;
Сразу отмечу что лот увеличивается после убыточной сделки только один раз.

глобальные переменные

Спойлер

extern bool MM = True; // ММ работает если равен True
extern double MaxRisk = 3.0; // это риск
extern int Kloss = 1; // количество убыточных ордеров в истории
extern int MultiplierLoss = 6; // коэффициент увеличение лота после убыточной сделки
extern int KProfit = 1; // количество прибыльных ордеров в истории
extern int MultiplierProfit = 3; // коэффициент увеличение лота после прибыльной сделки



Функция:
Спойлер

double GetLots(int Stop=1000){
// -----
int Loss;
int Profit;
double Free = AccountFreeMargin();
double LotVal = MarketInfo(Symbol(),MODE_TICKVALUE);
double Min_Lot = MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot = MarketInfo(Symbol(),MODE_MAXLOT);
double Step = MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot = MathFloor((Free*MaxRisk/100)/(Stop*LotVal)/Step)*Step;
// -----
int orders=OrdersHistoryTotal();
if(!MM)Lot=Lots;
if(Kloss>0){
for (int i = orders - 1; i >= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == FALSE) {
Print("Ошибка в истории!");
break;
}
if (OrderSymbol()!= Symbol() || OrderType() > OP_SELL) continue;
if (OrderMagicNumber()!=MagicNumber) continue;
if (OrderProfit() > 0.0) break;
if (OrderProfit() }
if(Loss==Kloss)Lot=Lot*MultiplierLoss;
}
//---
if(KProfit>0){
for (int j = orders - 1; j >= 0; j--) {
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY) == FALSE) {
Print("Ошибка в истории!");
break;
}
if (OrderSymbol()!= Symbol() || OrderType() > OP_SELL) continue;
if (OrderMagicNumber()!=MagicNumber) continue;
if (OrderProfit() if (OrderProfit() > 0.0) Profit++;
}
if(Profit>=KProfit)Lot=Lot*MultiplierProfit;
}
//---
if(Lot if(Lot>Max_Lot) Lot = Max_Lot;
// -----
return(Lot);
}



использовать в старте Lots=GetLots(Stoploss); я так понимаю.

Добавлено: 29-09-2013 02:29:29

собственно сам советник, развиваем мысль дальше.

Спойлер

case 0:
case 1: er="Нет ошибки, но результат неизвестен"; break;
case 2: er="Общая ошибка"; break;
case 3: er="Неправильные параметры"; break;
case 4: er="Торговый сервер занят"; break;
case 5: er="Старая версия клиентского терминала"; break;
case 6: er="Нет связи с торговым сервером"; break;
case 7: er="Недостаточно прав"; break;
case 8: er="Слишком частые запросы"; break;
case 9: er="Недопустимая операция нарушающая функционирование сервера"; break;
case 64: er="Счет заблокирован"; break;
case 65: er="Неправильный номер счета"; break;
case 128: er="Истек срок ожидания совершения сделки"; break;
case 129: er="Неправильная цена"; break;
case 130: er="Неправильные стопы"; break;
case 131: er="Неправильный объем"; break;
case 132: er="Рынок закрыт"; break;
case 133: er="Торговля запрещена"; break;
case 134: er="Недостаточно денег для совершения операции"; break;
case 135: er="Цена изменилась"; break;
case 136: er="Нет цен"; break;
case 137: er="Брокер занят"; break;
case 138: er="Новые цены - Реквот"; break;
case 139: er="Ордер заблокирован и уже обрабатывается"; break;
case 140: er="Разрешена только покупка"; break;
case 141: er="Слишком много запросов"; break;
case 145: er="Модификация запрещена, так как ордер слишком близок к рынку"; break;
case 146: er="Подсистема торговли занята"; break;
case 147: er="Использование даты истечения ордера запрещено брокером"; break;
case 148: er="Количество открытых и отложенных ордеров достигло предела "; break;
//----
case 4000: er="Нет ошибки"; break;
case 4001: er="Неправильный указатель функции"; break;
case 4002: er="Индекс массива - вне диапазона"; break;
case 4003: er="Нет памяти для стека функций"; break;
case 4004: er="Переполнение стека после рекурсивного вызова"; break;
case 4005: er="На стеке нет памяти для передачи параметров"; break;
case 4006: er="Нет памяти для строкового параметра"; break;
case 4007: er="Нет памяти для временной строки"; break;
case 4008: er="Неинициализированная строка"; break;
case 4009: er="Неинициализированная строка в массиве"; break;
case 4010: er="Нет памяти для строкового массива"; break;
case 4011: er="Слишком длинная строка"; break;
case 4012: er="Остаток от деления на ноль"; break;
case 4013: er="Деление на ноль"; break;
case 4014: er="Неизвестная команда"; break;
case 4015: er="Неправильный переход"; break;
case 4016: er="Неинициализированный массив"; break;
case 4017: er="Вызовы DLL не разрешены"; break;
case 4018: er="Невозможно загрузить библиотеку"; break;
case 4019: er="Невозможно вызвать функцию"; break;
case 4020: er="eВызовы внешних библиотечных функций не разрешены"; break;
case 4021: er="Недостаточно памяти для строки, возвращаемой из функции"; break;
case 4022: er="Система занята"; break;
case 4050: er="Неправильное количество параметров функции"; break;
case 4051: er="Недопустимое значение параметра функции"; break;
case 4052: er="Внутренняя ошибка строковой функции"; break;
case 4053: er="Ошибка массива"; break;
case 4054: er="Неправильное использование массива-таймсерии"; break;
case 4055: er="Ошибка пользовательского индикатора"; break;
case 4056: er="Массивы несовместимы"; break;
case 4057: er="Ошибка обработки глобальныех переменных"; break;
case 4058: er="Глобальная переменная не обнаружена"; break;
case 4059: er="Функция не разрешена в тестовом режиме"; break;
case 4060: er="Функция не подтверждена"; break;
case 4061: er="Ошибка отправки почты"; break;
case 4062: er="Ожидается параметр типа string"; break;
case 4063: er="Ожидается параметр типа integer"; break;
case 4064: er="Ожидается параметр типа double"; break;
case 4065: er="В качестве параметра ожидается массив"; break;
case 4066: er="Запрошенные исторические данные в состоянии обновления"; break;
case 4067: er="Ошибка при выполнении торговой операции"; break;
case 4099: er="Конец файла"; break;
case 4100: er="Ошибка при работе с файлом"; break;
case 4101: er="Неправильное имя файла"; break;
case 4102: er="Слишком много открытых файлов"; break;
case 4103: er="Невозможно открыть файл"; break;
case 4104: er="Несовместимый режим доступа к файлу"; break;
case 4105: er="Ни один ордер не выбран"; break;
case 4106: er="Неизвестный символ"; break;
case 4107: er="Неправильный параметр цены для торговой функции"; break;
case 4108: er="Неверный номер тикета"; break;
case 4109: er="Торговля не разрешена"; break;
case 4110: er="Длинные позиции не разрешены"; break;
case 4111: er="Короткие позиции не разрешены"; break;
case 4200: er="Объект уже существует"; break;
case 4201: er="Запрошено неизвестное свойство объекта"; break;
case 4202: er="Объект не существует"; break;
case 4203: er="Неизвестный тип объекта"; break;
case 4204: er="Нет имени объекта"; break;
case 4205: er="Ошибка координат объекта"; break;
case 4206: er="Не найдено указанное подокно"; break;
case 4207: er="Ошибка при работе с объектом";



Добавлено: 29-09-2013 04:56:45

Lots=GetLots(Stoploss); не работает, ордера в обще не открываются, Lots=GetLots(); так открываются но не так как хотелось бы.

Изменено 29 сентября, 2013 пользователем ss1975

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

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