Как кодировать? - страница 28

 

Нужна помощь с простым кодом!

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

Я торгую на одной минуте, и иногда значение бара может дойти до максимума, затем до минимума, затем снова до максимума. Если ea открывает сделку, когда 2 скользящие средние пересекаются, значение бара может опуститься ниже пересечения в ту же минуту, и ea выйдет из сделки, если значение временно опустится ниже. В результате ea может открыть и закрыть позицию на одном и том же минутном баре!!! Пожалуйста, посоветуйте!!!

Заранее спасибо!

Dave

<<<

 

У меня уже была такая проблема, и вот что я сделал:

В самом верху, где вы объявляете свои переменные, поместите

static bool ITradedOnThisBar;

затем там, где вы посылаете свой ордер, поместите

if(your critera && ITradedOnThisBar!=Bars)

{

ticket=OrderSend(Symbol(),OP_BUY,... );

ITradedOnThisBar = Bars;

}

Это не позволит вам открыть сделку на том же баре, на котором вы уже открыли сделку, но что более важно, вы хотите, чтобы сделка не закрылась на том же баре, поэтому я бы добавил этот код там, где вы закрываете сделку, например:

if(Your Criteria && ITradedOnThisBar != Bars)

{

OrderClose(OrderTicket(),... ); // закрытие позиции

}

Это, вероятно, самый простой способ сделать то, что вы пытаетесь сделать.

 

Код обновления буферов

есть код (патч, исправление, обновление) от Raff 4 мультитаймфреймовых (MTF) индикаторов, работающий довольно хорошо;

какой аналогичный код можно добавить к обычным (не МТФ) индикаторам?

Если возможно, пример, пожалуйста

спасибо

//---- Обновление буферов +++++++++++++++++++++ обновление от Raff

if (TimeFrame>Period()) {

int PerINT=TimeFrame/Period()+1;

datetime TimeArr[]; ArrayResize(TimeArr,PerINT);

ArrayCopySeries(TimeArr,MODE_TIME,Symbol(),Period());

for(i=0;i=TimeArray[0]) {

//----

/*****************************************************

Обновление буферов: buffer = buffer[0];

******************************************************/

Buffer1= Buffer1[0];

Buffer2= Buffer2[0];

Buffer3= Buffer3[0];

//----

} } }

//+++++++++++++++++++++++++++++++++++++++++ Raff ++++++

 
Willis11of12:
У меня уже была такая проблема, и вот что я сделал:

В самом верху, где вы объявляете свои переменные, поместите

static bool ITradedOnThisBar;

затем, где вы посылаете свой ордер, поместите

if(your critera && ITradedOnThisBar!=Bars)

{

ticket=OrderSend(Symbol(),OP_BUY,... );

ITradedOnThisBar = Bars;

}

Это не позволит вам открыть сделку на том же баре, на котором вы уже открыли сделку, но что более важно, вы хотите, чтобы сделка не закрылась на том же баре, поэтому я бы добавил этот код там, где вы закрываете сделку, например:

if(Your Criteria && ITradedOnThisBar != Bars)

{

OrderClose(OrderTicket(),... ); // закрытие позиции

}

Это, вероятно, самый простой способ сделать то, что вы пытаетесь сделать.

Спасибо за кодировку. Я установил его в свою ea (надеюсь, в нужных местах) и выясню, будет ли он работать, когда скользящие средние пересекутся.

Спасибо!

Дейв

 

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

Конструктор советников для MetaTrader 4

 

Я проверю это. Спасибо.

 

Существует ли такой код?

Интересно, существует ли такой код (с/ ниже описание).

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

(Открытие сделок)

1. Длинная сделка заключается, когда текущее значение индикатора превышает значение закрытия предыдущего бара. (внутрибаровое, не закрытие)

2. Короткая сделка заключается, когда текущее значение индикатора становится ниже значения закрытия предыдущего бара. (интрабар, не закрытие)

(Закрытие сделок)

1. Длинные сделки закрываются, когда открываются короткие.

2. Короткие сделки закрываются, когда открываются длинные сделки.

спасибо

 

попробуйте некоторые из них

Индекс /_MT4_Experts

 

Спасибо, AJK. Это довольно большой список!

 

помощь с кодом

я уверен, что кто-то уже задавал этот вопрос, но я не могу найти его при поиске в теме.

Я хотел бы знать, как написать код для советника, чтобы он размещал сделку только тогда, когда цена находится между уровнями -I.E.

if (price=>1.0000 && price<1.0050) sell

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