[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 105

 

Вот тут можно глянуть по закрытию поз..

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=select&id=4

 
Кто нибудь видел  запрограммированную мезаничесскую  торговую систему  по 3 экранам Эдлера при работе на часовых графиках. Поделитесь пожалуйста файликом.
 
rid >>:

Вот тут можно глянуть по закрытию поз..

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=select&id=4

Спасибо....пока не всё ещё перерыл-но пару советников выручиил:) Коль у самого не получается - спешу кусочек...)

 

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

Подскажите. В трейлинг стопе (для селл-сделок) задано :

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

Мне нужно сделать иначе . Вместо нового значения стоплосса 

Ask+TrailingStop*Point
Я вставляю : (OrderOpenPrice()-OrderProfit()/2 )

Вот так:

OrderModify(OrderTicket(),OrderOpenPrice(),(OrderOpenPrice()-OrderProfit()/2 ),OrderTakeProfit(), 0, Blue

Однако, журнал выдает мне ошибку 130 либо ошибку 4051(Недопустимое значение параметра функции)

Почему? Что я тут сделала неправильно. Стоплевелы соблюдены.

Причем, если я вместо OrderProfit()/2 вставляю константу, напр.  TrailingStop*Point, то  срабатывает без ошибок модификация


 
Rita писал(а) >>

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

Подскажите. В трейлинг стопе (для селл-сделок) задано :


Мне нужно сделать иначе . Вместо нового значения стоплосса

Я вставляю : (OrderOpenPrice()-OrderProfit()/2 )

Вот так:

Однако, журнал выдает мне ошибку 130 либо ошибку 4051(Недопустимое значение параметра функции)

Почему? Что я тут сделала неправильно. Стоплевелы соблюдены.

Причем, если я вместо OrderProfit()/2 вставляю константу, напр. TrailingStop*Point, то срабатывает без ошибок модификация

Профит желательно привести к пунктам. Он же в валюте депозита.

Нужно проверить полученное значение на стоплевел и желательно его (значение) еще и округлить.

Проверять что бы не поставить ближе, чем разрешено ДЦ.

Проще брать среднее между текущей ценой и ценой открытия.

 
Vinin >>:

Профит желательно привести к пунктам. Он же в валюте депозита.

Нужно проверить полученное значение на стоплевел и желательно его (значение) еще и округлить.

Проще брать среднее между текущей ценой и ценой открытия.

О каком профите вы говорите ? 
Стоплевелы соблюдены. - Я же об этом написала в своем сообщ.
//-----------------------------

Мне не нужно среднее значение. Т.е. мне в дальнейшем будут нужны значения OrderProfit()/n


 
Rita писал(а) >>

О каком профите вы говорите ?
Стоплевелы соблюдены. - Я же об этом написала в своем сообщ.
//-----------------------------

Мне не нужно среднее значение. Т.е. мне в дальнейшем будут нужны значения OrderProfit()/n

С ценами это нетрудно реализовать. Но дело хозяйское. Настаивать не буду.

 

Не подскажете советника, удаляет отложенники, после срабатывания одного из отложенников, только чтобы он игнорировал открытые сделки, а срабатывал только если открывается новая сделка после сработки отложенника?

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=31 вот тут есть хороший советник, но он удаляет сразу отложенники если есть по паре открытая сделка, может с ним что то можно сделать или просто настройки поменять.


И еще советник который удаляет несработавшие отложенники после любого закрытия сделки по паре (тп, сл, трал, ручное закрытие)
 
Vinin >>:

С ценами это нетрудно реализовать. Но дело хозяйское. Настаивать не буду.

А как это реализовать с ценами бик и аск? 

Подскажите пож., примером кода.

 
Rita писал(а) >>

А как это реализовать с ценами бик и аск?

Подскажите пож., примером кода.

double CalculateStopLoss(int OP, int N){
    double RetVal=0;
    double tmpStopLoss;
    double StopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
    if (OP==OP_BUY) {
       tmpStopLoss=(Bid-OrderOpenPrice())/N;
       if (StopLevel>tmpStopLoss/Point) tmpStopLoss=StopLevel*Point;
       RetVal=NormalizeDouble(OrderOpenPrice()+tmpStopLoss,Digits);
    }
    //   Отработка остальных случаев
   return(RetVal);
}

Возможно вариант не самый удачный. Может кто-то лучше предложит.

На самом деле это вариант процентного трала.