Полезности

9/20/2010 2:47:57 AM
Gravatar
Total Posts 3

Полезности

Доброе время суток.

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

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

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

2.Модуль пирамидальной покупки/продажи (на текущем баре 1 лот, на n+1 баре 1 лот, на n+3 баре - 2 лота, на n+5 баре 3 лота на и т.д. (c увеличением шага и лота по фибоначи и закрытием позиции на любом из шагов при достижении определенного профита в целом по портфелю)

С ув.,

Зима

:oops:

P.s.

Полагаю, что наличие примеров рабочих торговых систем и интересных идей, уже реализованных Вашими велдерами позволит начинающим быстрее освоить реализацию автоматов в велсе :!: .

9/20/2010 4:45:32 PM
Gravatar
Total Posts 4

RE:Полезности

Согласен!

Вообще, нужно, как то по другому организовать поддержку Велса... Ну, уж точно, не в таком виде (на форуме...) обсуждать все его прелести!

Предлагаю организовать раздел сайта, конечно же сделать его мобильным, растущим, а самое главное полезным!!!

Не думаю, что сотрудникам компании не приходила в голову сея мысль, видать, все дело в загруженности... Но, тем не менее, начинать надо, пока есть конкурентное преимущество!!! "Враг не дремлет..."

Давайте начнем хотя бы с пары тройки вебинарчиков, да и видео презентация Wealth-Lab.NET + WLRTAlgoTrading не помешает, можно в отдельности и в связке...

В общем, надо начинать завоевывать рынок!!!

9/20/2010 7:53:30 PM
Gravatar
Total Posts 151

RE:Полезности

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

9/28/2010 1:13:46 PM
Gravatar
Total Posts 5

RE:Полезности

Добрый День, Зима! Ответ на Ваш первый вопрос будет выглядеть примерно так(набросал бегло - запустить не было возможности). Единственное когда Вы закрываете позиции, то в реале на одном баре несколько позиций по одной цене закрыть нельзя поэтому Вам придется вводить небольшое отклонение цены(Позже создам тему в которой напишу как это делается) :

....

enum Deviations {SUM, PERCENT} // enum define type of deviation.

....

/**

* Function for sell on specified deviation.

**/

void sellOnDeviation(Deviations deviations, int deviation_size, int bar_number) {

double real_deviation_size = Math.Abs(getAllPositionCurrentPrice(bar_number) - getAllPositionsEntryPrice());

switch(deviations) {

case Deviations.PERCENT:

if (deviation_size > 100) {

return;

}

double real_deviation_size_percent = (real_deviation_size / getAllPositionsEntryPrice()) * 100;

if (real_deviation_size_percent > deviation_size) {

closeAllActivePosition(bar_number);

}

break;

case Deviations.SUM:

if (real_deviation_size > deviation_size) {

closeAllActivePosition(bar_number);

}

break;

default:

break;

}

}

/**

* Return the entry prices.

**/

public double getAllPositionsEntryPrice() {

double sum_price = 0;

foreach(Position p in ActivePositions) {

sum_price+=p.EntryPrice;

}

return sum_price;

}

/**

* Current price for all positions.

**/

public double getAllPositionCurrentPrice(int bar_number) {

return Close[bar_number] * ActivePositions.Count;

}

/**

* Function for close all active positions.

**/

public void closeAllActivePosition(int bar_number) {

foreach (Position p in ActivePositions) {

if (p.PositionType == PositionType.Long) {

SellAtLimit(bar_number + 1, p, Close[bar_number]);

} else {

CoverAtLimit(bar_number + 1, p, Close[bar_number]);

}

}

}

}

}

9/29/2010 4:19:34 PM
Gravatar
Total Posts 5

RE:Полезности

http://WLRT.ru/forum/forum19/topic778/messages/ - здесь описано, как закрывать несколько позиций

10/2/2010 1:54:51 AM
Gravatar
Total Posts 1

RE:Полезности

Спасибо Newdolph за формулы расчета суммарной позиции, к сожалению не совсем работает :), вернее для новичка в этом деле совсем не работает :idea:

Помогите написать вот такую логику:

: По условию открываем позицию, например покупаем RIZ0 n по Close[bar], 2n по Close[bar]-50 и 3n по Close[bar]-150 с установкой для каждого из них автопрофита и стоплосса (сразу извиняюсь что код не оптимизирован):

[CODE] double Stop = (Close[bar] - 115);

RiskStopLevel = Stop;//!!!

double Profit = (Close[bar] + 75);

AutoProfitLevel = Profit;//!!!

if (High[bar] - Low[bar] != 1)

BuyAtLimit(bar + 1, Close[bar]);

Stop = (Close[bar] - 155);

RiskStopLevel = Stop;//!!!

Profit = (Close[bar] + 35);

AutoProfitLevel = Profit;//!!!

BuyAtLimit(bar + 1, Close[bar]-50);

BuyAtLimit(bar + 1, Close[bar]-55);

Stop = (Close[bar] - 235);

RiskStopLevel = Stop;//!!!

Profit = (Close[bar] - 30);

AutoProfitLevel = Profit;//!!!

BuyAtLimit(bar + 1, Close[bar]-150);

BuyAtLimit(bar + 1, Close[bar]-155);

X BuyAtLimit(bar + 1, Close[bar]-155);[/CODE]

Аналогично открываем шорты

В результате на каждом слудующем баре пересчитываем среднюю стоимость текущей позицию

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

Кроме того сразу в начале предлагаю установить время начала и время окончания торгов, а так же 5 периодов времени исключаемых периодов.

С ув., Зима ;)