Добрый день!

Чтобы не плодить под каждый инструмент отдельный скрипт добавил в свой след код:

Code:
var instrument = "";
            if (sec.ToString().Contains("RTS")) instrument = "RTS";
            if (sec.ToString().Contains("SI")) instrument = "SI";

            switch (instrument)
            {
                case "RTS":
                    stopLoss = 1750;
                    trailEnable = 1500;
                    trailLoss = 750;
                    smaRange = 300;
                    smaPeriod = 100;
                    comission = 35;
                    lotsAmount = 1; //Количество лотов.
                    break;

                case "Si":
                    stopLoss = 500;
                    trailEnable = 2000;
                    trailLoss = 1000;
                    smaRange = 200;
                    smaPeriod = 100;
                    comission = 10;
                    lotsAmount = 4; //Количество лотов.
                    break;
            }


потом вот так входим в позицию

Code:
sec.Positions.SellAtPrice(lastIndex + 1, (int)lotsAmount, sec.Bars[lastIndex].Close, "SE");


как видно, робот должен торговать Си и Ри с разными стопами и разным количеством лотов (переменная lotsAmount).

Запустил двух агентов от одного скрипта.
Первый агент на Ри, Второй - на Си.

Си вошел в сделку одним контрактом (как будто он Ри, хотя Си должен торговаться на 4 контракта) и поставил стоп как для Ри. (Ри на текущий момент не в сделке).

Прошу подсказать почему так сработало и есть ли решение данной проблемы или все-таки для каждого инструмента нужно создавать свой отдельный скрипт?

При тестировании на истории все работало как надо )))
Прошу ногами не пинать, я только учусь ))

С уважением!


Отредактировано npokka (Mon Feb 15 2016 12:28 PM)