Помощь в кодировании - страница 13

 

быстрая модификация советника

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

Нужна помощь, я пытался изменить приведенный ниже код, но советник продолжал рушиться в MT4.

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

Это оригинальный код, он торгует от сигнала к сигналу.

//+------------------------------------------------------------------+

//| Signal Begin(Exit Buy) |

//+------------------------------------------------------------------+

if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;

//+------------------------------------------------------------------+

//| Signal End(Exit Buy) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop) {

if(OrderStopLoss() < Bid - Point * TrailingStop) {

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

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

} else {

//Close

//+------------------------------------------------------------------+

//| Signal Begin(Exit Sell) |

//+------------------------------------------------------------------+

if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;

//+------------------------------------------------------------------+

//| Signal End(Exit Sell) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

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

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

}

}

}

//+------------------------------------------------------------------+

//| Signal Begin(Entry) |

//+------------------------------------------------------------------+

//if (timeprev!=Time[0]){

// timeprev = Time[0];

if (signalup!=EMPTY_VALUE&&signalup!=0)

{

Order = SIGNAL_BUY;

}

if (signaldown!=EMPTY_VALUE&&signaldown!=0){

Order = SIGNAL_SELL;

}

// }

//+------------------------------------------------------------------+

//| Signal End |

//+------------------------------------------------------------------+

//Buy

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Sell

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("SELL order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

} else {

Print("Error opening SELL order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

//+------------------------------------------------------------------+

Кто-нибудь может мне помочь?

 

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

Мне нужна ea, которая делает следующее

в определенное время устанавливает 4шт ордера на покупку или продажу

функции:

время открытия ордера (переменная 00-24)

ордер1 продажа или покупка лота (0.01 .0,02... 1) TP (+ xx пипсов от опена) SL (- xx пипсов от открытия)

ордер2 продажа или покупка лота (0.01 .0,02... 1) TP (+ xx пунктов от оппонента) SL (- xx пунктов от открытия)

ордер3 продать или купить лот (0.01 .0,02... 1) TP (+ xx пунктов от опп) SL (- xx пунктов от открытия)

ордер4 продать или купить лот (0.01 .0,02... 1) TP (+ xx пипсов от оппена) SL (- xx пипсов от открытия)

СПАСИБО

 

Нужно добавить в советник код для отключения при определенном уровне цен

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

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

Я искал и нашел, что я могу сделать это с помощью

# iclude<WinUser32mqh

extern bool Disable Ea = true // от X (examply1.4420) до Y (examply1.4380) и от Z (examply1.4480) до N (examply1.4520) // //

extern bool Enable Ea = true // от R(examply -1.4420) до T(examply -1.4480)

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

 

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

Поэтому в функции запуска эксперта я написал следующее:

if(PRICE_MEDIAN (SellLevel-Point*BufferPips))

return (0)

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

BufferPips я добавил в extern double, чтобы в диалоговом окне я мог изменять его значение.

Я не уверен, что PRICE_MEDIAN является хорошим выбором.

Я получаю ошибку компиляции - несбалансированная левая скобка.

За помощь благодарен

 

помогите мне с автотрейдингом

Здравствуйте, господин Гуру!

У меня есть автотрейдинг, но он не запускается, пожалуйста, помогите мне!

Файлы:
auto_me.mq4  4 kb
 

Привет, Марио,

Я думаю, что это условие if(current_shortEma == current_longEma)

никогда не является истинным. Обычно для обнаружения креста нужно сделать следующее

if(current_shortEma > current_longEma && last_shortEma < last_longEma){

//кросс снизу

}

if(current_shortEma last_longEma){

//пересечение сверху

}

Более подробная информация здесь:

https://www.mql5.com/en/forum/trading_systems

Спасибо

Михаил

 

У меня тоже есть запрос на кодирование ---- нужен кодер (очень простая задача).

Мы знаем, что HA - хенки аши редко ошибается.

во время консолидации, или почти разворота, он будет становиться все короче и короче.

В то время как когда тренд все еще силен, HA для этого бара будет ДЛИННЫМ.

СЛЕДОВАТЕЛЬНО,

было бы здорово, если бы у нас был индикатор, который говорит нам о силе тренда.

идея проста

--- во-первых, это должен быть любой HA (я прилагаю только свой ex4, но нужно найти MQ4 - для HA) и модифицировать его (простая задача, я полагаю)

есть только 2 цвета для НА, один синий * вверх ---- + ---- и один розовый/фиолетовый * вниз

--- во-вторых, когда НА должен нарисовать НА на схеме, есть LENGTH - длина этого НА.

--- в-третьих, при приближении к развороту, полоса НА будет становиться все короче и короче

допустим, когда ДЛИНА полосы НА (методом проб и ошибок) короче 0.4 см, то мы рисуем ее ЧЕРНОЙ (т.е. не голубой/розовой).

он предупредит нас НЕ ВХОДИТЬ и вскоре выйдет.

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

кодер - пожалуйста, не используйте ex4, который я прилагаю, просто нажмите [ПОИСК] на форуме и введите henki ashi, найдите MQ4 со всем кодом.

------

когда вы закончите или после того, как вы измените его на 3 до 4 цвета (может быть 3 цвета, а не 4 цвета)

Пожалуйста, отправьте мне личное сообщение PM с ссылкой, чтобы я мог загрузить его, после того, как вы начнете, если вы хотите, я могу дать вам другой индикатор, который скажет вам, что является лучшим временем, чтобы изменить цвет на ЧЕРНЫЙ тоже - черный является своего рода предупреждающим цветом.

----- т.е. вы можете СКАЧАТЬ ex4, который я приложил, но использовать другой MQ4 pls ---.

Спасибо, это будет хорошим индикатором для всех нас, и кодирование должно быть довольно простым и понятным.

код находится в начале, подобно приведенной выше диаграмме

если моя догадка верна, g_ibuf_## управляет длиной полосы HA

мы просто должны вывести все значения g_ibuf с помощью функции "comment".

затем запустить график на несколько дней, и посмотреть на значение g_ibuf, когда оно станет маленьким, и отметить VALUE этой переменной

затем, когда у нас есть временной интервал для кодирования, мы просто кодируем от 1 до 2 цветов - скажем, черный и темно-серый, когда гистограмма g_ibuf становится МЕНЬШЕ определенного отмеченного значения.

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

искренне

xx3xxx -- Я загрузил свой MQ4 для версии 4 там, я думаю, вы можете использовать этот, это, кажется, длиннее и толще, чем другие HA, которые у меня есть

Файлы:
 
 
Файлы:
lsma_nrp.mq4  5 kb
 

Индикатору Trix нужно оповещение

Coder Guru или кто-либо другой, можете ли вы запрограммировать звуковое оповещение, оповещение и оповещение по почте t3_trix_x2roc_clr_nrp_mtf.mq4t3_trix_x2roc_clr_nrp_mtf.mq4e в этом индикаторе Trix, когда долгосрочная или краткосрочная линия Trix меняет цвет с красного на зеленый или наоборот. Спасибо

Файлы: