Нужна помощь в создании ОЧЕНЬ простого советника

 
я никогда раньше не создавал советника, но у меня есть сделка, которая происходит каждые 30 минут. я торгую на gbpusd. когда текущая 30-минутная свеча пробивает предыдущую свечу на один пункт, я вхожу в сделку на 5 пунктов. это может быть покупка или продажа, не имеет значения. у меня есть несколько других очень простых правил для этой сделки, поэтому мне нужен советник, который будет делать эту сделку за меня. кто-нибудь может мне помочь, пожалуйста!??????
 
crazfoto:
Я никогда раньше не создавал советников, но у меня есть торговля, которая происходит каждые 30 минут. Я торгую на gbpusd. Когда текущая 30-минутная свеча пробивает предыдущую свечу на один пункт, я вхожу на 5 пунктов. Это может быть покупка или продажа, не имеет значения. У меня есть несколько других очень простых правил для этой торговли, поэтому мне нужен советник, который сделает эту торговлю за меня. Кто-нибудь может помочь мне, пожалуйста!

Я мог бы помочь в этом, если это не так сложно.

Пожалуйста, предоставьте мне больше информации

 
doshur

Я мог бы помочь в этом, если это не так сложно.

Пожалуйста, предоставьте мне больше информации

Отлично. Единственные правила таковы:


входить, когда текущая свеча пробивает максимум или минимум предыдущей 30-метровой свечи на 1 пункт (максимум для покупки, минимум для продажи).

торговать только на свечах, которые на 20 пунктов или больше.

стопом является минимум (или максимум) предыдущей 30-минутной свечи после активации ордера.

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


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


Дайте мне знать. Еще раз спасибо.

 

входите, когда текущая свеча пробивает максимум или минимум предыдущей 30-метровой свечи на 1 пункт (максимум для покупки, минимум для продажи).

Поняли этот момент


торгуйте только свечи, которые на 20 пунктов или больше.

То есть, максимум - минимум предыдущей свечи дают 20 или более пунктов?


Стоп - это минимум (или максимум) предыдущей 30-минутной свечи после активации ордера.

Пожалуйста, объясните подробнее


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

Пожалуйста, поясните пункт 2


:)


С уважением

Дошур

 
doshur:

входите, когда текущая свеча пробивает максимум или минимум предыдущей 30-метровой свечи на 1 пункт (максимум для покупки, минимум для продажи)

Понял этот момент.


торгуйте только свечи, размер которых на 20 пунктов или больше.

Вы имеете в виду, что максимум и минимум предыдущей свечи дают 20 или более пунктов?


стопом является минимум (или максимум) предыдущей 30-минутной свечи после активации ордера.

Пожалуйста, объясните подробнее.


если свеча не пробита или ордер не установлен, то ждите формирования следующей 30-минутной свечи, которая будет на 20 пунктов или больше.

Пожалуйста, уточните пункт 2


:)


С уважением

Дошур

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


стоп

пример:

предыдущий максимум - 1.7500

предыдущий минимум - 1.7480

ордер на покупку будет 1.7001 tp 1.7506 st 1.7480

или ордер на продажу будет 1.7479 tp 1.7474 st 1.7500



Теперь, если у нас есть наш диапазон, а ордер так и не выставлен, т.е. рынок не пробивает хай или лоу для активации ордера. тогда предыдущий 30-минутный диапазон отменяется и новая 30-минутная свеча (которая теперь станет нашим предыдущим диапазоном) станет новым числом для торговли.


пример:


предыдущий максимум - 1.7550

предыдущий минимум - 1.7500

новая 30-минутная свеча остается между нашим диапазоном, и ордер не активируется.


мы получаем новую 30-метровую свечу, и предыдущий диапазон становится таким:

high 1.7540

минимум 1.7520


Таким образом, это становится нашим новым диапазоном для торговли, а диапазон 1.7550 1.7500 игнорируется.


Это имеет смысл? Я торгую отложенными ордерами, когда начинается новая 30-минутная свеча. Когда один из ордеров активируется, я удаляю другой ордер. Так, если активируется buy, я удаляю отложенный sell и наоборот. Если торговать с роботом, то отложенный ордер не нужен.

 

Теперь мне все ясно.

Начну кодировать в эти несколько дней. Дайте мне переварить.

:)

 
doshur:

Теперь мне все ясно.

Начну кодировать в эти несколько дней. Дайте мне переварить.

:)

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


Я буду торговать на этой неделе, попробую трейлинг стоп. Я никогда не делал этого раньше, просто всегда шел на 5 пунктов.

 
crazfoto wrote >>

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

Я буду торговать на этой неделе, попробую трейлинг стоп. Я никогда не делал этого раньше, просто всегда шел на 5 пунктов.

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

//+------------------------------------------------------------------+
//| 30-минутная стратегия.mq4 |
//| Copyright © 2008, Брендан Келли | |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Brendan Kelly"
#property link ""
extern string Order_Comment = "30Min Strategy";
extern double Lots = 0.1;
extern int TakeProfit = 5;

static bool ReadyToTradeThisBar = false;
int MagicNumber = 9999;

int start()
{

if (NewBar()) // Это делается в начале каждого нового бара
{
CloseAllOpenOrders(); //сначала закрываются все существующие сделки, оставшиеся с предыдущего бара
if(High[1] - Low[1]>= 20*Point) //если длина предыдущего бара не менее 20
ReadyToTradeThisBar = true; //тогда мы можем торговать на этом баре
иначе //в противном случае
ReadyToTradeThisBar = false; //мы не можем торговать на этом баре
}

//Это делается каждый тик
if (ReadyToTradeThisBar == true) //если мы можем торговать на этом баре
{
if (OrdersTotal() < 1) //и если в данный момент не ведется торговля
{
if(Ask > High[1] + 1*Point) //и если текущая цена ask больше, чем high предыдущего бара плюс 1
{ // затем размещаем ордер на покупку
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Low[1],Ask+ TakeProfit*Point,Order_Comment,MagicNumber,0,Blue);
ReadyToTradeThisBar = false; //предотвращаем дальнейшие сделки до закрытия текущей сделки
}
if(Bid < Low[1] - 1*Point) //и если текущая цена спроса меньше минимума предыдущего бара минус 1
{ //тогда выставляем ордер на продажу
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,High[1],Bid- TakeProfit*Point,Order_Comment,MagicNumber,0,Red);
ReadyToTradeThisBar = false; //предотвращаем дальнейшие сделки до закрытия текущей сделки
}
}
}

return(0);
}//end


//##########################Функции поддержки ##########################################

// Эта функция возвращает значение true, если текущий бар/свеча был только что сформирован
bool NewBar()
{
static datetime PreviousBar;
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true);
}
else
{
return(false);
}
return(false); // в случае, если оператор if - else не выполняется
}

//Закрываем все открытые и отложенные ордера
int CloseAllOpenOrders()
{
int OrderCount = OrdersTotal();
int index = 0;
int TicketNumber = 0;
for(index=OrderCount-1;index>-1;index--)
{
OrderSelect(index,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber)
{

TicketNumber = OrderTicket();
if (OrderType() == OP_BUY || OrderType() == OP_SELL )
{
OrderClose(TicketNumber,Lots,Bid,3,Red);
}
}
}
return(0);
}

С уважением,

Брендан

 
хорошо. смогу ли я модифицировать его, чтобы он работал и на 2-часовой свече? <br / translate="no">
 
Я понял, почему это не работает. он автоматически отменяет каждый ордер каждые полчаса, вместо того, чтобы позволить рынку остановить его или зафиксировать прибыль. я вижу много ордеров, которые бы выплатили, но робот закрыл ордер. если это можно изменить, я думаю, результаты будут лучше.
 

Спасибо Брендан за код.

Мне еще предстоит протестировать код, но кажется, что если вы активируете советника, он немедленно исполнит ордер, если все правила выполнены, даже если текущая цена на 10 пипсов выше предыдущего бара.

Причина обращения: