Гогеттер Е.А. - страница 3

 

Вы тестировали этот советник?

 

Привет,

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

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber)

на

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

Извините, это была оплошность. Это привело бы к ошибке, если бы вы начали торговать несколькими валютами с одним и тем же советником и одним и тем же Magicnumber.

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

 
Maji:
Привет,

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

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber)

на

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

Извините, это была оплошность. Это привело бы к ошибке, если бы вы начали торговать несколькими валютами с одним и тем же советником и одним и тем же Magicnumber.

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

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

 

GGlongs Build 1.05

Вот это уже лучше.

Еще раз спасибо Maji за то, что направил меня в совершенствовании методов подсчета нескольких ордеров и проблем обработки/модификации нескольких ордеров и т.д.

Здесь используется новая функция трейлинг-стопа, а также новая функция подсчета.

Я также работал над Сигналом_2, который и сделал миниатюру графика, прикрепленную ниже. Это основной сигнал тренда. Я еще не работал над контртрендовым сигналом_1. Но сигнал_2 приемлем с этими настройками для развертывания на 5м графике GBP/USD.

В ходе тестирования предыдущая версия GGlongs не смогла войти в четкий сигнал на покупку сегодня утром. Просматривая логику сигналов в версии 1.01, я обнаружил, что на самом деле все перепутал хуже, чем думал. В любом случае, проблема решена... версия 1.05 теперь должна тестироваться намного лучше, чем версия 1.01. Я поставлю v1.05 на форвард-тестер рядом с v2.11 GGs, которая еще не получила ни одной из этих новых функций.

Файлы:
 

Я заметил, что на неизмененном графике он вообще не изменяется... он не вводит новую серию после последней серии, как он всегда делал раньше... Интересно, почему???? Как могли изменения, которые я внес, сделать это?

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

Файлы:
 

Я запутался....

Вот что работает просто замечательно в GGl.....

int ModifyTrades()

{

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()&&OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop || OrderOpenPrice() - Bid >= 0) {

if(OrderStopLoss() < Bid - Point * TrailingStop || OrderStopLoss() == 0) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); //etc.

}//for

}

}

}

} [/PHP]

so....

why doesn't this work in the GGs???

[PHP]int ModifyTrades()

{

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()&&OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

if(TrailingStopMode && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop || Ask - OrderOpenPrice() >= 0)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); //etc.

}//for

}

}

}

}

Как вы можете видеть в приложенном отчете, здесь не происходит никакой "модификации"... ... если подумать... я никогда не видел НИКАКОЙ активности по модификации трейлинг-стопа в ЛЮБЫХ отчетах версии GGs!!! Что с этим????

Файлы:
ggs2.21.htm  149 kb
ggs2.21.gif  7 kb
 

Моя следующая задача по кодированию...

Я хочу добавить поддержку и сопротивление в логику моего EA.....

Это отлично работает для возврата значения самого высокого максимума за определенное количество баров...

//support and resistance

double HIGH = High;

double LOW = Low[Lowest (NULL, 0, MODE_LOW, SupportBarsBack, LStartBack)];

Фокусируясь на GG. Я заметил, что в каждом 145 баре на 30-метровом графике есть самый высокий максимум, за которым следуют три контртрендовых сигнала на продажу. Я определяю контртрендовый сигнал на продажу как каждый раз, когда 5ema пересекается сверху вниз с 18ema, что происходит выше 150ema. Таким образом, я вижу, что за новым максимумом следуют сигналы на продажу.

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

Итак...

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

Сигналы, которые я могу настроить...

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

Я не совсем понимаю, как считать появление сигналов. То есть я могу считать на графике, но как заставить код считать?

 

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

 

Хорошо, я понял, как получить максимум массива и минимум массива... это дает мне номер бара, на котором возникает значение, но это дает мне его в виде номера бара на графике...

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

как мне получить номер бара на графике, когда происходит сигнал пересечения скользящей средней?

 
/support and resistance

double HIGH = High;

double LOW = Low[Lowest (NULL, 0, MODE_LOW, SupportBarsBack, LStartBack)];

//support and resistance location

int Hloc = ArrayMaximum(High);

int Lloc = ArrayMinimum(Low);

.

.

.

Print("Order Number: ",OrderTicket() ," ",ResistanceBarsBack," bars back resistance : ",HIGH," @bar",Hloc," & ",SupportBarsBack," bars back support : ",LOW," @bar",Lloc);

[/PHP]

this is what this code is giving me...

[PHP]2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 6 20 bars back resistance : 1.9284 @bar109 & 20 bars back support : 1.9204 @bar205

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9223

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: open #6 sell 0.05 GBPUSD at 1.9223 sl: 1.9270 tp: 1.9118 ok

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: open #5 sell 0.05 GBPUSD at 1.9223 sl: 1.9270 tp: 1.9118 ok

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 4 20 bars back resistance : 1.9224 @bar44 & 20 bars back support : 1.9114 @bar49

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9146

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: open #4 sell 0.05 GBPUSD at 1.9146 sl: 1.9193 tp: 1.9041 ok

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: open #3 sell 0.05 GBPUSD at 1.9146 sl: 1.9193 tp: 1.9041 ok

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 2 20 bars back resistance : 1.9186 @bar100 & 20 bars back support : 1.908 @bar15

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9121

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: open #2 sell 0.05 GBPUSD at 1.9121 sl: 1.9168 tp: 1.9016 ok

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: open #1 sell 0.05 GBPUSD at 1.9121 sl: 1.9168 tp: 1.9016 ok

как я могу понять номера этих баров?

По крайней мере, бары поддержки кажутся в некоторой степени последовательными 15,49,205

Что происходит с барами сопротивления? 100,44,109??? если уж на то пошло, если посмотреть на график, то первый бар сопротивления на самом деле первый в массиве из 20 значений, а не 100. Например, 1=100?

Так что на самом деле самые первые два ордера соответствовали номеру бара поддержки за 15 баров до ордера, и если 100 означает 1, то сопротивление действительно произошло на первом баре массива из 20 баров.