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

 

нужна помощь для hide_breakeven

Привет всем, я нашел этот код для скрытия трейлинг стопа и хочу сделать скрытие breakeaven, он работает, но он не закрывает ордер. Я хочу закрыть ордер, если BID опускается с максимума и пересекает BE HLINE, и не закрывать, если BID пересекает BE HLINE с минимума. Я сделал много примеров, но это не работает так, как я хочу... пожалуйста, помогите мне, вот код для "buy":

void HideBreakEvenBuy(){

int totalorders = OrdersTotal();

for(int i=totalorders-1;i>=0;i--){

if (OrderSymbol()==OrderSymbol()){

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){

если (OrderType()==OP_BUY){

if (MarketInfo(OrderSymbol(),MODE_ASK)-OrderOpenPrice() >= breakeven*Point && ObjectGet("sl "+OrderTicket()+"b", OBJPROP_PRICE1) < OrderOpenPrice()){

ObjectCreate("BE "+OrderTicket()+"b", OBJ_HLINE, 0, 0, 0, 0);

ObjectSet("BE "+OrderTicket()+"b", OBJPROP_PRICE1, OrderOpenPrice()+BE*Point);

ObjectSet("BE "+OrderTicket()+"b", OBJPROP_COLOR, Red);

ObjectSet("BE "+OrderTicket()+"b", OBJPROP_STYLE, 3);

}

if (MarketInfo(OrderSymbol(),MODE_ASK) -ObjectGet("BE "+OrderTicket()+"b", OBJPROP_PRICE1)

>= breakeven*Point && ObjectGet("BE "+OrderTicket()+"b", OBJPROP_PRICE1)

>= OrderOpenPrice() && ObjectGet("BE "+OrderTicket()+"b", OBJPROP_PRICE1) <MarketInfo(OrderSymbol(),MODE_ASK)){

//ObjectSet("BE "+OrderTicket()+"b", OBJPROP_PRICE1, MarketInfo(OrderSymbol(),MODE_ASK) -TrailingStop*Point);

if (OrderType() == OP_BUY && MarketInfo(OrderSymbol(),MODE_ASK) >= ObjectGet("BE "+OrderTicket()+"b", OBJPROP_PRICE1)) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), SlippageClose, Silver);

}

}

}

}

}

}

с наилучшими пожеланиями go_rich

 

Как добавить трейлинг-стоп к уже сделанному эксперту

Как добавить трейлинг-стоп к уже готовому эксперту? Этот эксперт можно редактировать. Спасибо за любую помощь

 

2 индикатора в одном

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

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

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

 

Расчет предыдущих баров/замораживание тестера

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

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

Например, если самая высокая цена для EURUSD за последние 60 дней была 1.30000, а самая низкая - 1.20000, разница составит 0.1 (или 1000 пунктов). Затем я умножу 0,1 на 1000, чтобы получить желаемый диапазон в 100 пунктов. (В принципе, для каждого торгового диапазона в 1000 пунктов мне нужно значение 100 для моих расчетов).

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

В общем, вот код, который я использовал:

double highval = High;

double lowval = Low;

int DesiredRange = NormalizeDouble(highval - lowval,3)*1000;

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

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

ПОЖАЛУЙСТА, ПОМОГИТЕ! Заранее спасибо!

 

Почему бы вам не использовать месячный таймфрейм и не получить максимальное и минимальное значение за предыдущие 2 месяца. 2 месяца равны 60 дням.

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

jamesmean:
Здравствуйте, я хотел бы узнать, может ли кто-нибудь помочь мне с быстрым исправлением кода советника.

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

Например, если самая высокая цена для EURUSD за последние 60 дней была 1.30000, а самая низкая - 1.20000, разница составит 0.1 (или 1000 пунктов). Затем я умножу 0,1 на 1000, чтобы получить желаемый диапазон в 100 пунктов. (В принципе, для каждого торгового диапазона в 1000 пунктов мне нужно значение 100 для моих расчетов).

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

В общем, вот код, который я использовал:

double highval = High;

double lowval = Low;

int DesiredRange = NormalizeDouble(highval - lowval,3)*1000;

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

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

ПОЖАЛУЙСТА, ПОМОГИТЕ! Заранее спасибо!
 

Это не простая задача.

vladokvr:
может кто-нибудь поможет мне, или покажет пример как из двух индикаторов сделать один, думаю это будет интересно многим трейдерам!
 

Проверьте свои бары

jamesmean:
Здравствуйте, я хотел бы узнать, может ли кто-нибудь помочь мне с быстрым исправлением кода советника.

Мне нужно, чтобы мой советник брал самую низкую цену за последние 60 дней и вычитал ее из самой высокой цены за тот же период.

......

В общем, вот код, который я использовал:

double highval = High;

double lowval = Low;

int DesiredRange = NormalizeDouble(highval - lowval,3)*1000;

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

ПОЖАЛУЙСТА, ПОМОГИТЕ! Заранее спасибо!

Привет Джеймс,

Редактировать - Я удалил свое предложение. Не тот код (он был для iCustom's, а не для iHighest, iLowest). Все еще учусь.

---

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

Надеюсь, это поможет,

Роберт

 

Индикатор, цена пробивает последний фрактал

Как определить (с помощью кода), пробила ли цена последний фрактал вверх или вниз.

Я пробовал что-то с ifractals в mql, но безуспешно. Я хотел бы определить последний фрактал вниз в своем коде.

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

TIA!

Файлы:
chrt1.gif  23 kb
 

Забудьте о вопросе о фрактале, я нашел решение. Проблема в том, что для определения фрактала нужно вернуться назад во времени с помощью "цикла for", что, IMO, приводит к большим накладным расходам. Но я не программист, поэтому, возможно, есть лучшие решения.

THNX