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

 

Быстрое создание ордера

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

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

Эд

 

Можно ли использовать два советника в одно и то же время?

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

Возможно ли сделать рабочими два моих советника?

- в одно и то же время

- на одном и том же таймфрейме (например: 1 минута)

- и с одной и той же валютной парой (например: EUR/USD).

Я изменил MagicNumber (EA_1 = 10 ; EA_2 = 20), но они работают один за другим, даже если условия для торговли хороши для каждого.

Помогите мне, пожалуйста.

Спасибо!

Файлы:
ea_1.mq4  10 kb
ea_2.mq4  10 kb
 
ralph.ronnquist:
Хм; я не тестировал ваш эксперт, но, читая логику, мне кажется, что единственное, что останавливает последующую продажу после покупки, это то, что "IsTrade" истинно. (За исключением того, что он не будет открывать продажу в то же самое время, когда он открывает покупку).

Поэтому, если вы хотите, чтобы логика Sell применялась безоговорочно, я бы подумал, что только моя правка (1) - забудьте о 2-4 - будет работать. Или удалите логику "IsTrade".

Правда, есть подчиненная логика с "TickCheck" и "BarCount", которая останавливает другую сделку на том же тике или на том же баре, но я предполагаю, что вы хотите, чтобы она все еще применялась.

Конечно, я не могу ничего сказать о сигнальной части, которую вы опустили. Например, если поднятие сигнала "Sell_Signal" учитывает "BuyOrders", то это еще не все.

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

Еще раз спасибо за ваше время. Просто для вашей информации, я решил проблему. Предложенная вами модификация была первым шагом в правильном направлении. Потребовалась дополнительная модификация (выделено жирным шрифтом):

if (Buy_Signal && BuyOrders < Max_Buys&& BuyOrders==0) Order = SIGNAL_BUY;

if (Sell_Signal && SellOrders < Max_Sells && SellOrders==0) Order = SIGNAL_SELL;

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

Любые идеи и предложения будут приняты с благодарностью.

 

Вы можете поместить этот код после строки "BuyOrders++;":

if ( TimeCurrent() - OrderOpenTime() >= 86400 * MaxTradePeriodInDays )

Order = SIGNAL_CLOSEBUY;

и аналогичный для ордеров на продажу.

Хотя это не очень хорошо работает в выходные дни.

 

Индикатор с этим кодом:

Здравствуйте, мои дорогие,

Я хочу 2 индикатора в MT4 с этим кодом ниже: (со стрелкой, сигнализирующей о покупке/продаже на графике)

Номер 1:

----------

MA1 = SMA(5,Close), MA2 = SMA(10,Close), MACD(12,26,9)

Сигнал к длинной сделке: MA1 > MA2, RSI(14) > 50, и MACD Fast > MACD Signal

Сигнал к короткой сделке: MA1 < MA2, RSI(14) < 50, и MACD Fast < MACD Signal.

----------

Номер 2:

----------

F1 - фрактальный уровень вверх, а F2 - фрактальный уровень вниз в приведенном ниже коде.

UpTrend и DownTrend(Описание):

F1:=ValueWhen(1,H<Ref(H,-2) AND Ref(H,-1)<Ref(H,-2) AND Ref(H,-3)<Ref(H,-2) AND Ref(H,-4)<Ref(H,-2),Ref(H,-2));

F2:=ЗначениеКогда(1,L>Ref(L,-2) AND Ref(L,-1)>Ref(L,-2) AND Ref(L,-3)>Ref(L,-2) AND Ref(L,-4)>Ref(L,-2),Ref(L,-2));

a:=Кросс(H,F1);

b:=Cross(F2,L);

state:=BarsSince(a)<BarsSince(b);

{Длинный и короткий сигналы}

LongSignal:= state<Ref(state,-1);

ShortSignal:=state>Ref(state,-1);

{Тренд вверх и вниз}

UpTrend:=state>0;

DownTrend:=state<1;

---------------------------------------

Спасибо и наилучшие пожелания,

Хамуш

 

Часы и часы!!!!!!!

Мне очень нужна помощь!

Я не могу понять это вообще!!!!!!!!!

Я пробовал Mql4.com, F1 при выборе слова, все!

Я не понимаю этого!!!!!!

Что значит

IndicatorCounted()[/PHP]mean?????????

What does

Bars

mean??????????????

What is [PHP]Bars-IndicatorCounted()

что это значит?

 

Вам нужна какая помощь? Индикаторы..." Вы можете получить некоторые здесь... что вам нужно сейчас, так это учиться и практиковаться, он...он...он...

 
Dan7974:
Мне очень нужна помощь!

У меня вообще не получается!!!!!!!!!

Я пробовал Mql4.com, F1 при выборе слова, все!

Я не понимаю этого!!!!!!

Что делает

IndicatorCounted()[/PHP]mean?????????

What does

Bars

mean??????????????

What is [PHP]Bars-IndicatorCounted()
я????????????

int IndicatorCounted( )

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

Примечание: Самый последний бар не считается просчитанным и в большинстве случаев необходимо пересчитать только этот бар. Однако бывают граничные случаи, когда пользовательский индикатор вызывается из эксперта на первом тике нового бара. Возможно, что последний тик предыдущего бара не был обработан (так как в момент прихода этого последнего тика обрабатывался предпоследний), пользовательский индикатор не был вызван и из-за этого не был рассчитан. Чтобы избежать ошибок расчета индикатора в таких ситуациях, функция IndicatorCounted() возвращает счетчик баров минус один.

Пример:

int start()

{

int limit;

int counted_bars=IndicatorCounted();

//---- проверка на возможные ошибки

if(counted_bars<0) return(-1);

//---- последний подсчитанный бар будет пересчитан

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//---- основной цикл

for(int i=0; i<limit; i++)

{

//---- ma_shift установлен в 0, потому что SetIndexShift вызывался ранее

ExtBlueBuffer=iMA(NULL,0,JawsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

ExtRedBuffer=iMA(NULL,0,TeethPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

ExtLimeBuffer=iMA(NULL,0,LipsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

}

//---- готово

return(0);

}

 
natsirte:
Hi evrerybody

Можно ли сделать так, чтобы работали два моих советника?

- в одно и то же время

- на одном и том же таймфрейме (например: 1 минута)

- и с одной и той же валютной парой (например :EUR/USD).

Я изменил MagicNumber (EA_1 = 10 ; EA_2 = 20), но они работают один за другим, даже если условия для торговли хороши для каждого.

Помогите мне пожалуйста.

Спасибо!

Замените строку :

if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {[/PHP] by this one : [PHP]if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
 

Код пожара сразу после завершения 15-минутного бара

У меня есть трейлинг-стоп, он обновляется каждый тик во время 15-минутного бара, и стоп рассчитывается в 20 пунктах от цены BID.

Но я бы предпочел, чтобы трейлинг-стоп рассчитывался в конце самого последнего 15-минутного бара.

Таким образом, вот что должно быть при покупке

if( BID > High[1] - (20 * Point)) StopLoss = High[1] - (20 * Point);

Это делается для того, чтобы позволить текущему 15-минутному бару колебаться сколько угодно, прежде чем будут перемещены стопы.

Так ли это, или есть другие идеи? Спасибо

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