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

 

Здравствуйте, Младен, сэр,

Это моя скромная просьба к Вам. Пожалуйста, перекодируйте этот индикатор, который показывает дневную линию открытия. Аналогичным образом я хочу получить код двух индикаторов, т.е. 1) линии High предыдущего дня и 2) линии Low предыдущего дня. Я торгую опционами, поэтому эти индикаторы должны настраивать время в HH:MM. Заранее спасибо

Файлы:
 
alpha24:
Здравствуйте, Младен, это моя скромная просьба к вам. пожалуйста, перекодируйте этот индикатор, который показывает дневную линию открытия. Аналогичным образом я хочу получить код двух индикаторов, т.е. 1) линии High предыдущего дня и 2) линии Low предыдущего дня. Я торгую опционами, поэтому эти индикаторы должны настраивать время в HH:MM. Заранее спасибо

альфа24

При текущих настройках( разница вчасовых поясах указана в 9 часов 15 минут) невозможно адаптировать его для нормального отображения нужной вам информации. Извините

 

привет Младен,

можете ли вы поставить 3 mtf настраиваемые на ваш индикатор connorRSI plz?

connorsrsi.mq4

спасибо

Файлы:
 
js497:
Привет, Младен,

можете ли вы поставить 3 mtf настраиваемые на ваш индикатор connorRSI plz ?

connorsrsi.mq4

спасибо

js497

Это индикатор Connors rsi на 3 таймфрейма

Файлы:
 
mladen:
js497 Это индикатор Connors rsi на 3 таймфрейма.

спасибо Младен

 
arroganzmaschine:
Привет всем, надеюсь, вы сможете мне помочь.

Мне нужно запрограммировать советник, в котором я буду проверять каждый тик, открыт ли новый ордер, и модифицировать этот ордер со стоп-лоссом.

Как я могу проверить, был ли открыт ордер, и модифицировать его? Советник не открывает ордера, он просто должен проверять.

Спасибо всем! Вы все очень помогли.

С наилучшими пожеланиями, Макс.

Эй, mladen, у вас есть какие-нибудь идеи? Это было бы здорово!

Спасибо большое.

 
arroganzmaschine:
Привет, mladen, у тебя есть какие-нибудь идеи? Это было бы здорово! Большое спасибо.

arroganzmaschine

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

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

Здравствуйте, Младен,

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

 
arroganzmaschine:
Здравствуйте, mladen, спасибо за ответ. Я хочу написать код самостоятельно. Когда я отправляю новый ордер, советник должен обнаружить это и установить стоплосс на этот новый ордер. На рынке есть только один ордер. Как я могу это реализовать?

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

extern double StopLoss = 20;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

if (StopLoss<=0) return(0);

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

{

if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;

if (OrderSymbol() != Symbol()) continue;

int ticket = OrderTicket();

double sl = 0;

if (OrderType()==OP_BUY) sl = NormalizeDouble(OrderOpenPrice()-StopLoss*Point*MathPow(10,Digits%2),Digits);

if (OrderType()==OP_SELL) sl = NormalizeDouble(OrderOpenPrice()+StopLoss*Point*MathPow(10,Digits%2),Digits);

if (sl!=0 && sl!=OrderStopLoss())

OrderModify(ticket,OrderOpenPrice(),sl,0,0,CLR_NONE);

}

return(0);

}
Файлы:
_test_1.mq4  1 kb
 
mladen:
Вы можете использовать следующий код в качестве начала (нужно добавить только некоторые проверки ошибок - старался сохранить код как можно более простым, чтобы показать только суть того, что нужно сделать)
extern double StopLoss = 20;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

if (StopLoss<=0) return(0);

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

{

if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;

if (OrderSymbol() != Symbol()) continue;

int ticket = OrderTicket();

double sl = 0;

if (OrderType()==OP_BUY) sl = NormalizeDouble(OrderOpenPrice()-StopLoss*Point*MathPow(10,Digits%2),Digits);

if (OrderType()==OP_SELL) sl = NormalizeDouble(OrderOpenPrice()+StopLoss*Point*MathPow(10,Digits%2),Digits);

if (sl!=0 && sl!=OrderStopLoss())

OrderModify(ticket,OrderOpenPrice(),sl,0,0,CLR_NONE);

}

return(0);

}

Большое спасибо!!!