10 пунктов 3.mq4 - страница 92

 

Здравствуйте, yeoeleven,

Спасибо за ваш ответ и советы.

Я буду следовать им

 
forex4syg:
Похоже, что в Jugulator есть ошибка при расчете ActualOrders.

В моем тесте для GBPJPYm в какой-то момент открылась только одна позиция. Она была закрыта из-за ConfirmedOrders=1 и ActualOrders=2.

Не уверен, откуда взялась эта проблема. В коде ActualOrders, кажется, всегда увеличивается на 1, когда ордер отправляется. Если SendOrder не удается (по разным причинам), ActualOrders все равно увеличится на 1. Возможно, лучше проверить ошибку из SendOrder. Если ошибки нет, то ActualOrders увеличивается на 1.

Спасибо!

Это должно быть исправлено здесь (Страница 89, пост 890, Jugulator.zip). В советнике есть новая переменная, которая устанавливается на номер ордера. Если ордер не сработал, то номера ордера быть не должно, и код проверяет это, прежде чем увеличить переменную ActualOrders.

void OrderNeedsOpening() {

//Сохраняем значения перед их изменением

double TempActualLotSize = ActualLotSize;

//Увеличиваем размер лота

ActualLotSize = NormalizeDouble(ActualLotSize * LotsIncreaseBy, LotPrecision);

//Мы пытаемся перейти в длинную позицию?

if (OrderDirection == 1) {

//Устанавливаем тейк-профит и открываем длинный ордер

ActualTP = Ask + (TakeProfit * Point);

LastTicket = OrderSend(Symbol(), OP_BUY, ActualLotSize, Ask, OrderSlippage, ActualSL, ActualTP, "Order" + (ActualOrders + 1), Magic, 0, Blue);

}

//Мы пытаемся войти в короткую позицию?

else if (OrderDirection == 2) {

//Устанавливаем тейк-профит и открываем короткий ордер

ActualTP = Bid - (TakeProfit * Point);

LastTicket = OrderSend(Symbol(), OP_SELL, ActualLotSize, Bid, OrderSlippage, ActualSL, ActualTP, "Order" + (ActualOrders + 1), Magic, 0, Red);

}

//Если ордер прошел, его значение будет больше 0

if (LastTicket > 0) {

ActualOrders++;

}

//Заказ не прошел, поэтому нужно установить значение обратно

else {

ActualLotSize = TempActualLotSize;

}

}

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

 

Результаты Jugulator H4

Вот результаты 0,10 и 0,01 за сегодняшнее утро.

 

Результаты Jugulator H4

Вот результаты по счетам 0.10 и 0.01 за сегодняшнее утро в 10 утра по восточному времени после нескольких важных новостей.

Счет 0.01 вырос на $268.94

Счет 0.10 вырос на $1,912.44

 

Динамическая остановка 10points3

Закрытие на неделю 10points3 Dynamic Stop. Закрытие пар по мере их выхода в прибыль. Настройки, опубликованные ранее

В целом хорошая неделя.

Я все еще жду отката USDJPY перед закрытием Jugulator.

Джон

Файлы:
 

Jugulator1.1

В продолжение настроек в посте #891 и предыдущих результатов в посте #898. Вот подробный отчет после закрытия недели.

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

Джон

Файлы:
jug4.htm  67 kb
jug4.gif  6 kb
 
mtaboneweb:
Это должно быть исправлено здесь (Страница 89, пост 890, Jugulator.zip). В советнике есть новая переменная, которая устанавливается на номер ордера. Если ордер не сработал, то номера ордера быть не должно, и код проверяет это, прежде чем увеличить переменную ActualOrders.

void OrderNeedsOpening() {

//Сохраняем значения перед их изменением

double TempActualLotSize = ActualLotSize;

//Увеличение размера лота

ActualLotSize = NormalizeDouble(ActualLotSize * LotsIncreaseBy, LotPrecision);

//Мы пытаемся перейти в длинную позицию?

if (OrderDirection == 1) {

//Устанавливаем тейк-профит и открываем длинный ордер

ActualTP = Ask + (TakeProfit * Point);

LastTicket = OrderSend(Symbol(), OP_BUY, ActualLotSize, Ask, OrderSlippage, ActualSL, ActualTP, "Order" + (ActualOrders + 1), Magic, 0, Blue);

}

//Мы пытаемся войти в короткую позицию?

else if (OrderDirection == 2) {

//Устанавливаем тейк-профит и открываем короткий ордер

ActualTP = Bid - (TakeProfit * Point);

LastTicket = OrderSend(Symbol(), OP_SELL, ActualLotSize, Bid, OrderSlippage, ActualSL, ActualTP, "Order" + (ActualOrders + 1), Magic, 0, Red);

}

//Если ордер прошел, его значение будет больше 0

if (LastTicket > 0) {

ActualOrders++;

}

//Заказ не прошел, поэтому нужно установить значение обратно

else {

ActualLotSize = TempActualLotSize;

}

}

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

Версия, которую я тестирую, не содержит вышеуказанного изменения. Я буду использовать более новую версию. Спасибо mtaboneweb!

 
yeoeleven:
Все еще продолжаю тестировать 10points3 Dynamic Stop и все еще получаю хорошие результаты.

Вчера я удалил GBPUSD в попытке сделать этот советник безопасным для небольших счетов, это, вероятно, снизило прибыльность, но, надеюсь, повысило безопасность.

Джон

Вы все еще используете оригинальный динамический стоп 10points3, который находится на странице 18?

Спасибо

 

10points3 Динамическая остановка

hawkv:
Вы все еще используете оригинальный 10points3 Dynamic Stop, который находится на странице 18? Спасибо.

Да, это та версия, которую я все еще тестирую вместе с Goblin & Jugulator. Она по-прежнему хорошо справляется с теми советниками, которые были разработаны на ее основе.

Джон

 

tf

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

.1 - .2 - .3 - .5 - .8 - 1.3 - 2.1 - 4.4 - 6.5 - и т.д.

Это было опубликовано Stockwet в теме Гоблина. Очень интересная идея, но вместо того, чтобы поднимать ордера с места, пропустите ордера, которые были пропущены, и перейдите к следующему приращению, Таким образом, если цена быстро движется вверх, у вас есть потери только на том, что у вас есть на доске. Допустим, после 3 приращений цены цена летит вверх на 40 пунктов на 15-минутном баре. Когда бар завершен, ea проверяет, какой # ордер должен быть реализован, и начинает с этого с правильным количеством лотов. таким образом, ордер # 4 может оказаться 2.1 лотом вместо .5 лота. Таким образом, ваши 2,1 лота могут компенсировать потери, которые не смог бы компенсировать следующий обычный ордер (.5), если бы он был запущен в этот конкретный момент цены. Ваш ордер 2,1 лота теперь становится ордером № 4 и прогрессирует от него. Это не сократит убытки, если прогрессия дойдет до 10, но позволит прогрессии пройти дальше до закрытия, что даст вам больше шансов окупиться. Или сделки могут быть закрыты, если будет установлено, что тренд изменился, с меньшими потерями, чем обычно. Может ли это быть осуществимой идеей?