Стоп заявка
Atom
6/13/2011


Добрый день. Сейчас фиксирую прибыль вот таким образом, просто выставляя лимитную заяку выше текущей цены цены на 30 рублей:
Quote:
var order3 = new Order
{
Portfolio = _portfolio,
Price = _instrument0.ShrinkPrice(_instrument0.BestAsk.Price+30),
Security = _instrument0,
Volume = 5,
Direction = OrderDirections.Buy,
};
trader.RegisterOrder(order3);

Но бывает так, что нужно в районе 30-ти рублей начать следить за ценой. Далее, например, при достижении 35 рублей при откате назад более чем на 3 рубля(до 32 рублей) выбросить лимитированную заявку с ценой 31,8. Т.е. эдакий трейлинг-стоп. Как это можно реализовать? Стратегии не используются.

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

Tags:


Thanks:


< 1 2 3  >
patermind

Avatar
Date: 6/17/2011
Reply


need help for get balance! )))
Thanks:

Alexander

Avatar
Date: 6/24/2011
Reply


patermind Go to
need help for get balance! )))


Привидите скриншот таблицы из квика и все распечатку всех порфтелей которые приходят в квик
Thanks:

patermind

Avatar
Date: 6/24/2011
Reply


Скриншот сделаю сегодня вечером и сразу выложу. А как вывести в консоль все портфели? У меня, если бы это получилось, наверное я бы смог выбрать с нужным балансом.
Thanks:

Alexander

Avatar
Date: 6/24/2011
Reply


patermind Go to
Скриншот сделаю сегодня вечером и сразу выложу. А как вывести в консоль все портфели? У меня, если бы это получилось, наверное я бы смог выбрать с нужным балансом.


подписываетесь на NewPortfolios, приходит коллекция портфелей. Для каждого печатаете всё что необходимо
Thanks:

patermind

Avatar
Date: 6/24/2011
Reply


Alexander Go to
patermind Go to
Скриншот сделаю сегодня вечером и сразу выложу. А как вывести в консоль все портфели? У меня, если бы это получилось, наверное я бы смог выбрать с нужным балансом.


подписываетесь на NewPortfolios, приходит коллекция портфелей. Для каждого печатаете всё что необходимо


Выглядит примерно вот так, как и в документации -
Code

trader.NewPortfolios += portfolios =>
{
    if (_portfolio == null)
    {
        // находим sberbank и присваиваем ее переменной sber
        _portfolio = portfolios.FirstOrDefault(p => p.Name == account);

        if (_portfolio != null)
        {
            Console.WriteLine("Портфель {0} появился.", account);

            // если инструмент и стакан уже появились,
            // то извещаем об этом основной поток для выставления заявки
            if (_sber != null && _depth != null)
                waitHandle.Set();
        }
    }
};


куда здесь и что именно нужно добавить, чтобы вывелись все портфели?
Thanks:

Alexander

Avatar
Date: 6/24/2011
Reply


patermind Go to

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


Code

trader.NewPortfolios += portfolios =>
{
//тут перебираем всю коллекцию portfolios с помощью foreach и выводим его поля
    if (_portfolio == null)
    {
//блаблабла
    }
};
Thanks:

patermind

Avatar
Date: 6/24/2011
Reply


а что написать, чтобы все портфели вывелись?
Thanks:

Alexander

Avatar
Date: 6/24/2011
Reply


patermind Go to
а что написать, чтобы все портфели вывелись?


ну это уже чистый C#, тут секретов вроде и вопросов быть не должно
Code
var portfolioString = "";
        foreach (var portfolio in portfolios)
        {
            portfolioString += portfolio.Name + " : " + portfolio.Exchange + " : " + portfolio.BeginAmount + " : " +
                               portfolio.CurrentAmount + " : " + portfolio.Commission + " : " + portfolio.Leverage + 
                               Environment.NewLine;
            portfolioString +=
        }


покажите строку portfolioString
Thanks:

patermind

Avatar
Date: 6/25/2011
Reply


Благодарю!
Quote:

L01-00000F00 : : 0 RUB : 0 RUB : 0 : 0;


вот такое вывел в лог.
Quote:
portfolioString += portfolio.Name + " : " + portfolio.Exchange + " : " + portfolio.BeginAmount + " : " + portfolio.CurrentAmount + " : " + portfolio.Commission + " : " + portfolio.Leverage + ";\r\n";


т.е. нету там ничего, я так понимаю.
Thanks:

Alexander

Avatar
Date: 6/26/2011
Reply


patermind Go to
Благодарю!
Quote:

L01-00000F00 : : 0 RUB : 0 RUB : 0 : 0;


вот такое вывел в лог.
Quote:
portfolioString += portfolio.Name + " : " + portfolio.Exchange + " : " + portfolio.BeginAmount + " : " + portfolio.CurrentAmount + " : " + portfolio.Commission + " : " + portfolio.Leverage + ";\r\n";


т.е. нету там ничего, я так понимаю.



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

ещё так скриншота портфелей и не увидел :)
Thanks:
< 1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy