﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Сообщество. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=community&amp;page=260</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-22T08:48:18Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=community&amp;page=260" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/1496/</id>
    <title type="text">API Update - Order: Цена исполнения заявки</title>
    <published>2011-04-06T17:07:02Z</published>
    <updated>2011-04-06T17:07:02Z</updated>
    <author>
      <name>Sergey Masyura</name>
      <uri>https://stocksharp.ru/users/701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Всем привет.&lt;/p&gt;
&lt;p&gt;Было бы хорошо расширить API для BusuinessEntities.Order и добавить туда поле цена исполнения заявки (ExecutionPrice). Сейчас есть только поле цена, то есть цена по которой была выставлена заявка. Конечно, есть ExtentionInfo и можно информацию туда поместить, но, на мой взгляд, это должно быть частью API.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1495/</id>
    <title type="text">2 вопроса для старта !</title>
    <published>2011-04-06T08:42:59Z</published>
    <updated>2011-04-06T08:42:59Z</updated>
    <author>
      <name>Кирил</name>
      <uri>https://stocksharp.ru/users/28334/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;Добрый день.
1 - Как подписать событие ?
2 - Как выставить обработчика ?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;              И всё это делать под WindowsForms. 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;В програмировании начальный уровень мне в нём легче.&lt;/p&gt;
&lt;p&gt;Вот что есть на данный момент&lt;/p&gt;
&lt;p&gt;using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Ecng.Trading.Algo;
using Ecng.Trading.Smart;
using Ecng.Trading.BusinessEntities;
using System.Net;
using Ecng.Common;
namespace Stock_060411_podkluchenie
{
public partial class Form1 : Form
{
public SmartTrader Trader;
public Form1()
{
InitializeComponent();
}&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    private void button1_Click(object sender, EventArgs e)
    {         
        IPEndPoint IP = new IPEndPoint(IPAddress.Parse(&amp;quot;82.204.220.34&amp;quot;), 8090);
        Trader = new SmartTrader(textBox1.Text, textBox2.Text, IP);
        Trader.Connect();
    }
     private void TraderConnected()
    {    
        label3.Text = &amp;quot;Подключили&amp;quot;;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1494/</id>
    <title type="text">Перестает вызываться OnProcess стратегии</title>
    <published>2011-04-05T06:31:53Z</published>
    <updated>2011-04-05T06:31:53Z</updated>
    <author>
      <name>Alter</name>
      <uri>https://stocksharp.ru/users/5036/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Заметил, что робот проворонил сигнал, в логах ничего не нашел, задебажил и увидел, что не вызывается OnProcess. В последнем вызове PropertyChanged у стратегии состояние Runned. Стратегия унаследована от TimeFrameStrategy, S# последний.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1493/</id>
    <title type="text">Работоспособность примеров</title>
    <published>2011-04-04T21:22:54Z</published>
    <updated>2011-04-04T21:22:54Z</updated>
    <author>
      <name>Aton5</name>
      <uri>https://stocksharp.ru/users/28158/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Запускаю пример:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;SampleHistoryTesting, и указываю путь к папке RIU9@RTS или даже  RIU9@RTS/2009_09_10
Возникает ощибка , и пример не работает.&lt;/li&gt;
&lt;li&gt;SampleRealTimeTesting. Тут указаны  IP серверов, а не путь к  QUIK-у.
Подскажите где написать путь к  Квику или как сделать, чтобы программа находила  мой  Квик ?&lt;/li&gt;
&lt;li&gt;SampleSMA.  Указываю   путь  к  КВИКу, подключаюсь, указываю счет  свой SPBFUT из выпадающего списка, на этом практически все заканчивается, ошущение, что  DDE не выводится,  кнопка Старт – не активна, а при нажатии на кнопку Отчет – выпадает ощибка.
Как поправить, и вообше как запустить эти примеры, чтобы хоть посмотреть как работают и на их примере изучать.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;PS Как копипастить сюда ошибки из окон , если в них не выделяется текст?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1492/</id>
    <title type="text">как подключить библиотеку в проект c#?</title>
    <published>2011-04-04T20:26:06Z</published>
    <updated>2011-04-04T20:26:06Z</updated>
    <author>
      <name>bleed</name>
      <uri>https://stocksharp.ru/users/28060/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Добрый день,&lt;/p&gt;
&lt;p&gt;читал мануал по c#, разбирался в api, изучал примеры вроде пока все понятно,
решил попробовать написать простенького анализатора,&lt;/p&gt;
&lt;p&gt;создал новый проект, консольное приложение&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
namespace ConsoleApplication1
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using Ecng.Common;
    using Ecng.Trading.Smart;
    
    class Program
    {

        static void Main(string[] args)
        {
                SmartTrader trader = new SmartTrader(&amp;quot;login&amp;quot;, &amp;quot;pass&amp;quot;);

                trader.Connected += () =&amp;gt;
                {
                	Console.WriteLine(&amp;quot;connected&amp;quot;);
                };

                trader.Disconnected += () =&amp;gt;
                {
		Console.WriteLine(&amp;quot;disconnected&amp;quot;);
                };

                trader.ConnectionError += error =&amp;gt;
                {
                    Console.WriteLine(error.ToString());
                };

                trader.Connect();
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;пишет что Ecng не находит, оки оно и понятно, надо указать путь к файлам либы,
открываю обозреватель решений-&amp;gt;ссылки-&amp;gt;добавляю новую ссылку на необходимый файл.&lt;/p&gt;
&lt;p&gt;ошибки уходят, Code Assist видит иерархию Ecng, будто все нормально отправляю на отладку,
выдает ошибки:
Имя типа или пространства имен &amp;quot;Trading&amp;quot; отсутствует в пространстве имен &amp;quot;Ecng&amp;quot; (пропущена ссылка на сборку?)&lt;/p&gt;
&lt;p&gt;Очевидно что что то я упустил, ткните носом плиз весь день убил сегодня, как всетаки правильно подключать файлы библиотеки?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1491/</id>
    <title type="text">А не забацать ли нам индюки?</title>
    <published>2011-04-04T19:08:28Z</published>
    <updated>2011-04-04T19:08:28Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Всем миром, тоесть всей комьюнити. Предлагаю организацию работы аналогичную Плазе. Как плюс такой работы - все индикаторы будут с исходниками и можно будет их подправить в случае своего уникального алгоритма.&lt;/p&gt;
&lt;p&gt;Кто что уже делал в этой области, откликнитесь. Можно сразу с кодом, как это уже &lt;a href="http://stocksharp.com/forum/1435/Nabor-indikatorov/"&gt;сделали здесь&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Так же, отпишитесь, кто желает и у кого есть идеи по организации, наполнении БД индикаторов. Навыки в участии здесь шире, чем у Плазы. Сразу видится как минимум две роли: аналитик (кто помогает сформулировать требование, найти грамотное описание, провести зависимость между другими индикаторами) и разработчик (собственно, кто переводит это дело в код).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1490/</id>
    <title type="text">Кросс-заявки</title>
    <published>2011-04-04T16:28:25Z</published>
    <updated>2011-04-04T16:28:25Z</updated>
    <author>
      <name>watashi</name>
      <uri>https://stocksharp.ru/users/28457/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Доброго времени суток, уважаемые коллеги!&lt;/p&gt;
&lt;p&gt;Столкнулся с проблемой кросс-заявок. Это ситуация, когда выставляемая заявка встречается со своей же уже выставленной противоположной заявкой. Такое происходит на не особо ликвидных бумагах и/или в вечернюю сессию, когда своя заявка стоит лучшей в стакане. Кто как борется?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update.&lt;/strong&gt; Я пока ничего лучше этого не придумал:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;double price = 100;
Order order;
String msg = &amp;quot;&amp;quot;;

while (true)
{
    order = new Order
    {
        Portfolio = _portfolio,
        Price = price,
        Direction = OrderDirections.Buy,
        Security = _lkoh,
        Volume = 1,
    };

    try
    {
        trader.RegisterOrder(order);
    }
    catch (Exception ex)
    {
        msg = ex.Message;
    }

    if (msg.IndexOf(&amp;quot;Обработка кросс-заявок блокирована&amp;quot;) &amp;gt;= 0)
    {
        price = price + 0.01;
        Console.WriteLine(msg);
        msg = &amp;quot;&amp;quot;;
    }
    else
    {
        break; 
    }
}

&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1489/</id>
    <title type="text">Verifier не видит quik.</title>
    <published>2011-04-04T12:28:33Z</published>
    <updated>2011-04-04T12:28:33Z</updated>
    <author>
      <name>stillalive</name>
      <uri>https://stocksharp.ru/users/28214/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Собственно вот и проблема.
Квик скачал с сайта открытия. 5.21.0.21
s# 3.0.19
&lt;strong&gt;Проблема решена&lt;/strong&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1488/</id>
    <title type="text">VS 2010 vs Express</title>
    <published>2011-04-02T17:03:58Z</published>
    <updated>2011-04-02T17:03:58Z</updated>
    <author>
      <name>stillalive</name>
      <uri>https://stocksharp.ru/users/28214/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;У меня возник вопрос, полностью ли работает S# под vs2010 express?
да и в чем отличие express от professional edition'a рпи работе со стоком?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1487/</id>
    <title type="text">Ошибка на сервере</title>
    <published>2011-03-30T16:46:51Z</published>
    <updated>2011-03-30T16:46:51Z</updated>
    <author>
      <name>Greene-nsk</name>
      <uri>https://stocksharp.ru/users/27932/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;4ый раз за сегодня при работе на боевом сервере вылетает ошибка. Подскажите, из-за чего такое может быть?&lt;/p&gt;
&lt;p&gt;30.03.2011 20:20:27 [OpenWealth.GUI.MainWindow.HandleError] ERROR: Ошибка на сервере. (Исключение из HRESULT: 0x80010105 (RPC_E_SERVERFAULT))   в StClientLib.StServerClass.ListenQuotes(String symbol)
в Ecng.Trading.Smart.SmartComWrapper.#=q83RC8QjwGE06bYxuClwq918sUQXQqYO1feg6VKvhYqI=.#=qpoEVZlP9guSr6dgFWp2iCpVGUKf6PtVDt4m9rK13oK8=(StServer #=qAlxNbaLCOD0HiKWsm_9OXQ==)
в Ecng.Trading.Smart.SmartComWrapper.#=q6j2YX3oHz_lUUXkVf8me$A==(Action&lt;code&gt;1 #=q1KOHdk6GGSGdK9eoSLrYkw==) в Ecng.Trading.Smart.SmartComWrapper.RegisterSecurity(String securityId) в Ecng.Trading.Smart.SmartTrader.RegisterSecurity(Security security) в Ecng.Collections.CollectionHelper.ForEach(IEnumerable&lt;/code&gt;1 source, Action&lt;code&gt;1 action) в Ecng.Trading.Smart.SmartTrader.#=qQCFKDdV38JU2Ih4XM79WOsrrbMRiLCQCKp9LzQEmKhM=(SynchronizedMultiDictionary&lt;/code&gt;2 #=qgohONNrpRXtYaxKR42nU_g==)
в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action`1 action)
в Ecng.Trading.Smart.SmartTrader.ReStartExport()
в #=qPaOSmxcDNS5CuIUgtMiZSiOo7q7sTnVldRbJs7__AlQl92FFNdIuRUDp8OG4kQ5E.#=qKJkHzbVoHxwkiIHT3F_rqMDa5qLkcoyA5PxjgOknG2U=.#=q0s6fqMUJxDorvnlZNpkD2KT_McYu3YpFHxTBO2V2haY=()
в Ecng.Common.ThreadHelper.&amp;lt;&amp;gt;c__DisplayClass1.&amp;lt;CreateTimer&amp;gt;b__0(Object )
в System.Threading._TimerCallback.TimerCallback_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading._TimerCallback.PerformTimerCallback(Object state)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1486/</id>
    <title type="text">Торговля на ММВБ и РТС из S#</title>
    <published>2011-03-30T06:15:20Z</published>
    <updated>2011-03-30T06:15:20Z</updated>
    <author>
      <name>VsevolodG</name>
      <uri>https://stocksharp.ru/users/1525/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Уточните, пожалуйста, в чем разница в торговле на этих биржах? То есть, на что нужно обратить внимание при программировании робота?&lt;/p&gt;
&lt;p&gt;Я сделал робота, который без проблем работает на ММВБ, но не работает на РТС. Ума не приложу, где может быть проблема.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1485/</id>
    <title type="text">Проблема с GuarantyCancelOrder</title>
    <published>2011-03-29T19:25:42Z</published>
    <updated>2011-03-29T19:25:42Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.ru/users/6053/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Я думаю это не баг, т.к. никто больше не написал. Такая проблема: GuarantyCancelOrder снимает стоп-заявку, ждет 20 секунд и выдает исключение-таймаут. Что это может быть? DDE экспорт таблицы стоп-заявок включен.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1484/</id>
    <title type="text">SampleHistoryTesting</title>
    <published>2011-03-29T12:55:11Z</published>
    <updated>2011-03-29T12:55:11Z</updated>
    <author>
      <name>roman</name>
      <uri>https://stocksharp.ru/users/27830/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;p&gt;SampleHistoryTesting - непонятно как работает:(
Скачал RIU9@RTS.zip (Файл с историческими сделками для примера SampleHistoryTesting.) &lt;a href="http://www.box.net/stocksharp/#/stocksharp/1/74701094" rel="nofollow" target="_blank"&gt;http://www.box.net/stocksharp/#/stocksharp/1/74701094&lt;/a&gt;
Запустил SampleHistoryTesting - выбрал папку с распакованным архивом
В итоге алгоритм на строчку _nextTime += base.TimeFrame; так не разу и не попал:(
И непонятно как получить файлы и директории такого формата для другого инструмента.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1483/</id>
    <title type="text">[CRITICAL] котировки от SmartCOM</title>
    <published>2011-03-29T12:32:38Z</published>
    <updated>2011-03-29T12:32:38Z</updated>
    <author>
      <name>Greene-nsk</name>
      <uri>https://stocksharp.ru/users/27932/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;Подписан RegisterTrades, RegisterSecurity, RegisterQuotes. Пинг до боевого сервера SmartCOM (82.204.220.34) не больше 20мс. Среднее 10мс.&lt;/p&gt;
&lt;p&gt;Вывожу одновременно:
(1)
Trader.GetMarketDepth(sAdapter.Security).BestBid.Price
Trader.GetMarketDepth(sAdapter.Security).BestAsk.Price
(2)
Security.BestBid.Price
Security.BestAsk.Price
Security.LastTrade.Price
(3)
CandleManager.GetLastTimeFrameCandle(security, timeFrame).ClosePrice&lt;/p&gt;
&lt;p&gt;Символы: RIM1, SRM1.&lt;/p&gt;
&lt;p&gt;Все три вывода показывают совершенно разные вещи.
Точнее всех показывает (3)
Далее (2) с опозданием несколько минут.
Далее (3) с опозданием примерно минут 20.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1482/</id>
    <title type="text">Исключение при вводе заявки (Ecng.Trading.Quik.ApiException - WrongSyntax)</title>
    <published>2011-03-29T06:39:10Z</published>
    <updated>2011-03-29T06:39:10Z</updated>
    <author>
      <name>poilka</name>
      <uri>https://stocksharp.ru/users/28519/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Михаил, форумчане, доброе утро.
Разобрался со стратегиями, запустил тест -
при регистрации заявки вылетает ошибка про неправильный синтаксис.
Квик последней версии (5.21), S# версии 3.0.19.&lt;/p&gt;
&lt;p&gt;Вот лог:
SS_01:00:01 09:54:58.8178056 Стратегия запущена.
SS_01:00:01 09:55:39.1501124 Ecng.Trading.Quik.ApiException: Код ошибки WrongSyntax Сообщение ACCOUNT=NC0011100000; CLIENT_CODE=S#; TRANS_ID=35595486; CLASSCODE=QJSIM; SECCODE=LKOH; QUANTITY=1; OPERATION=B; TYPE=L; ACTION=NEW_ORDER; PRICE=2037,6; EXECUTION_CONDITION=PUT_IN_QUEUE;
в #=qe5yLdIzi$8a3p7QevlfBtdu51_lStqsU7mFOj$YVDVAi699VUV$_PTRsL8c5lXOC.#=qkexMpdeQpL5tlMU7l5x6Aw==(Int32 #=qPWPfx5JrbjpLNX1_Spj$IA==, StringBuilder #=q$kN4v38bzSPqA8WIBKesDw==)
в #=qoXwOPiKu6rKxfqRbyQH_8kmNOB382r_Z62UoStG__20=.#=qqqjfNu5FDvUnmIHLI7eIpqULYCdQ6s45iJpvRMufTTo=(String #=qMyxjjZn7gcLlgrKmKE6fdw==, OrderStatus&amp;amp; #=qfMzUMVwoA9vTKeRIC2yVBg==, UInt32&amp;amp; #=qx89Qmj8$YdXkVw2g47iBHA==, Int64&amp;amp; #=qru3jL$hLUeCwshCq6a0lcA==, String&amp;amp; #=qJTAyuLuvPwQ9HQzhdHWM2g==)
в Ecng.Trading.Quik.QuikTrader.#=q54MTj4O0HyGlsuBk4LMgvyLClWnXw07g5l8N_CZjZXo=(Order #=qfB2F85tURLB4YdJcjKMYgg==, TransactionBuilder #=qk_SbqcrTyofJ_NTgcHp8Fg==)
в Ecng.Trading.Quik.QuikTrader.OnRegisterOrder(Order order)
в Ecng.Trading.Algo.BaseTrader.RegisterOrder(Order order)
в Ecng.Trading.Algo.Strategies.Strategy.RegisterOrder(Order order)
в SampleSMA.SmaStrategy.OnProcess() в C:\S#3\Sources\SampleSMA\SmaStrategy.cs:строка 77
в Ecng.Trading.Algo.Strategies.Strategy.#=qnMN_PMdUfHysEK$_tfQ8grn_QTjzOIMGPiv$tYCH2Bw=.#=q3rD2zIrUx4ViUbhRH66B2w==()
SS_01:00:01 09:55:39.1501124 Стратегия останавливается.
SS_01:00:01 09:55:40.0841659 Стратегия остановлена.&lt;/p&gt;
&lt;p ClientCode="OPEN596"&gt;Принудительно менял код клиента в _trader на выданный брокером  - такая же ошибка.
В чем может быть дело?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1481/</id>
    <title type="text">Protect в событийной модели</title>
    <published>2011-03-28T16:13:50Z</published>
    <updated>2011-03-28T16:13:50Z</updated>
    <author>
      <name>vvt</name>
      <uri>https://stocksharp.ru/users/34/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Взял пример кода из хелпа (событийная модель):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;				When(_order.NewTrades()).
					Do(this.Protect(_order,
					                t =&amp;gt; new TakeProfitStrategy(t, 150.Points(Security)), // тейк на 150 пунктов
					                t =&amp;gt; new StopLossStrategy(t, 100.Points(Security)))). // стоп на 100 пунктов
					Activated&amp;lt;Strategy&amp;gt;(s =&amp;gt;
					                    	{
					                    		When(s.Stopped()).
					                    			Do(() =&amp;gt;
					                    			   	{
					                    			   		/* сработало стоп условие */
					                    			   	});
					                    	});

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;при наступлении события NewTrades выдает следующее:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;System.InvalidOperationException: Значение стоимости шага цены не инициализировано.
в Ecng.Trading.BusinessEntities.UnitHelper.GetStepPrice(Unit unit)
в Ecng.Trading.BusinessEntities.Unit.op_Explicit(Unit unit)
в Ecng.Trading.BusinessEntities.Unit.CreateResult(Unit u1, Unit u2, Func&lt;code&gt;3 operation, Func&lt;/code&gt;3 percentOperation)
в Ecng.Trading.BusinessEntities.Unit.op_Subtraction(Unit u1, Unit u2)
в Ecng.Trading.Algo.Strategies.StopLossStrategy.GetNewPrice()
в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()
в Ecng.Trading.Algo.Strategies.Strategy.
#=qnMN_PMdUfHysEK$_tfQ8grn_QTjzOIMGPiv$tYCH2Bw=.#=q3rD2zIrUx4ViUbhRH66B2w==()&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1480/</id>
    <title type="text">Событийный подход</title>
    <published>2011-03-28T07:06:21Z</published>
    <updated>2011-03-28T07:06:21Z</updated>
    <author>
      <name>poilka</name>
      <uri>https://stocksharp.ru/users/28519/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Доброго всем дня, особенно Михаилу :).
Начал осваивать событийный подход, забуксовал.&lt;/p&gt;
&lt;p&gt;Подскажите, пожалуйста, как правильно запускать стратегию наподобие той,
что приведена в примере (class MyOwnStrategy : ActionStrategy)?
Нужно ли добавлять в нее конструктор и отдельно передавать Security?&lt;/p&gt;
&lt;p&gt;Сейчас запускаю на ФОРТС так:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;_strategy = new MyOwnStrategy() { Volume = 1 };
_manager.Register(_strategy, this.Portfolios.SelectedPortfolio, _rts);
if (_strategy.ProcessState == StrategyProcessStates.Stopped)
	{
	_strategy.Start();
	}
	else
	{
	_strategy.Stop();
	}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Стратегия нормально запускается и останавливается из GUI примера SampleSMA, лог пишется, но сделок не происходит на любом таймфрейме.&lt;/p&gt;
&lt;p&gt;Лог обычно такой:
MOS 20:34:52.0212958 Стратегия запущена.
MOS 20:36:11.3213772 Стратегия останавливается.
MOS 20:36:11.6273947 Стратегия остановлена.&lt;/p&gt;
&lt;p&gt;Событийную стратегию взял из мануала, без изменений, версия 3.0.
Буду признателен за помощь.&lt;/p&gt;
&lt;p&gt;Весь запускающий код, кроме самой стратегии из примера:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;namespace SampleSMA
{
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.ComponentModel;
	using System.Globalization;
	using System.IO;
	using System.Threading;
	using System.Windows;
	using System.Windows.Forms;
	using MessageBox = System.Windows.MessageBox;
	using AmCharts.Windows.Stock;
    using Ecng.Collections;
	using Ecng.Common;
	using Ecng.ComponentModel;
	using Ecng.Trading.Algo;
	using Ecng.Trading.Algo.Candles;
    using Ecng.Trading.Algo.Logging;
	using Ecng.Trading.Algo.Reporting;
	using Ecng.Trading.Algo.Strategies;
	using Ecng.Trading.BusinessEntities;
	using Ecng.Trading.Quik;
	using Ecng.Trading.Xaml;
	using Ecng.Xaml;

	public partial class MainWindow
	{
		private readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(1);
		private QuikTrader _trader;
		private MyOwnStrategy _strategy;
		private RealTimeStrategyManager _manager;
		private bool _isDdeStarted;
		private Security _rts;
        public CandleManager _candleManager;

		public MainWindow()
		{
			 InitializeComponent();

			// изменяет текущий формат, чтобы нецелое числа интерпритировалось как разделенное точкой.
			 var cci = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name) { NumberFormat = { NumberDecimalSeparator = &amp;quot;.&amp;quot; } };
		     Thread.CurrentThread.CurrentCulture = cci;

			}

		private void _orders_OrderSelected(object sender, EventArgs e)
		{
			this.CancelOrders.IsEnabled = _orders.SelectedOrders.Count() &amp;gt; 0;
		}

		 protected override void OnClosing(CancelEventArgs e)
		{
			if (_trader != null)
			{
				_manager.Dispose();

				if (_isDdeStarted)
					StopDde();

				_trader.Dispose();
			}

			base.OnClosing(e);
		}    

		private void FindPath_Click(object sender, RoutedEventArgs e)
		{
			var dlg = new FolderBrowserDialog();

			if (!this.Path.Text.IsEmpty())
				dlg.SelectedPath = this.Path.Text;

			if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
			{
				this.Path.Text = dlg.SelectedPath;
			}
		}

		private void Connect_Click(object sender, RoutedEventArgs e)
		{
			if (_trader == null || !_trader.IsConnected)
			{
				if (_trader == null)
				{
					if (this.Path.Text.IsEmpty())
					{
						MessageBox.Show(this, &amp;quot;Путь к Quik не выбран.&amp;quot;);
						return;
					}

					// создаем шлюз
					_trader = new QuikTrader(this.Path.Text);

					// создаем менеджер стратегий
					_manager = new RealTimeStrategyManager(_trader);

					this.Portfolios.Trader = _trader;

					_trader.Connected += () =&amp;gt;
					{
                        _candleManager = new CandleManager(_trader);

                        _trader.NewSecurities += securities =&amp;gt; this.GuiAsync(() =&amp;gt;
						{
							// находим нужную бумагу
							var rts = securities.FirstOrDefault(s =&amp;gt; s.Code == &amp;quot;RIM1&amp;quot;);

							if (rts != null)
							{
								_rts = rts;

								this.GuiAsync(() =&amp;gt;
								{
									this.Start.IsEnabled = true;
								});
							}
						});

						
						_trader.ConnectionError += ex =&amp;gt;
						{
							if (ex != null)
								this.GuiAsync(() =&amp;gt; MessageBox.Show(this, ex.ToString()));
						};

						this.GuiAsync(() =&amp;gt;
						{
							this.ConnectBtn.IsEnabled = false;
							this.ExportDde.IsEnabled = true;
							this.Report.IsEnabled = true;
						});
					};
				}

				_trader.Connect();
			}
			else
				_trader.Disconnect();
		}

       	private void OnNewOrder(Order order)
		{
			_orders.Orders.Add(order);
			this.GuiAsync(() =&amp;gt; _chart.Orders.Add(order));
		}

		private void OnLog(Strategy strategy, StrategyErrorStates errorState, string message)
		{
			// если стратегия вывела не просто сообщение, то вывести на экран.
			if (errorState != StrategyErrorStates.None)
				this.GuiAsync(() =&amp;gt; MessageBox.Show(this, message));
		}

		
		private void OnStrategyPropertyChanged(object sender, PropertyChangedEventArgs e)
		{
			this.GuiAsync(() =&amp;gt;
			{
				this.Status.Content = _strategy.ProcessState;
				this.PnL.Content = _strategy.PnLManager.PnL;
				this.Slippage.Content = _strategy.SlippageManager.Slippage;
				this.Position.Content = _strategy.PositionManager.Position;
				this.Latency.Content = _strategy.LatencyManager.Latency;
			});
		}

		private void StartDde()
		{
			_trader.StartExport();
			_isDdeStarted = true;
		}

		private void StopDde()
		{
			_trader.StopExport();
			_isDdeStarted = false;
		}

		private void ExportDde_Click(object sender, RoutedEventArgs e)
		{
			if (_isDdeStarted)
				StopDde();
			else
				StartDde();
		}

		private void CancelOrders_Click(object sender, RoutedEventArgs e)
		{
			_orders.SelectedOrders.ForEach(_trader.CancelOrder);
		}

		private void Start_Click(object sender, RoutedEventArgs e)
		{
			if (_strategy == null)
			{
				if (this.Portfolios.SelectedPortfolio == null)
				{
					MessageBox.Show(this, &amp;quot;Портфель не выбран.&amp;quot;);
					return;
				}

				
				// создаем стратегию
				_strategy = new MyOwnStrategy() { Volume = 1 };
				_strategy.Log += OnLog;
				_strategy.NewOrder += OnNewOrder;
				_strategy.PropertyChanged += OnStrategyPropertyChanged;

				// регистрируем стратегию, чтобы она начала обрабатываться
				_manager.Register(_strategy, this.Portfolios.SelectedPortfolio, _rts);

				var fileLogger = new FileStrategyLogger(&amp;quot;{0}_{1:00}_{2:00}.txt&amp;quot;.Put(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day));
                
                fileLogger.Strategies.Add(_strategy);
                
                this.Report.IsEnabled = true;

			}
            
			if (_strategy.ProcessState == StrategyProcessStates.Stopped)
			{
				_strategy.Start();
				this.Start.Content = &amp;quot;Хватит&amp;quot;;
			}
			else
			{
				_strategy.Stop();
				this.Start.Content = &amp;quot;Понеслась&amp;quot;;
			}
		}
        
        private void Report_Click(object sender, RoutedEventArgs e)
		{
			var fileName = &amp;quot;report_{0}_{1}.xls&amp;quot;.Put(_strategy.Security.Code, DateTime.Now.ToString(&amp;quot;yyyy_MM_dd_HH_mm&amp;quot;));
			new ExcelStrategyReport(_strategy, System.IO.Path.Combine(Directory.GetCurrentDirectory(), fileName)).Generate();
		}
	}
}
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1479/</id>
    <title type="text">Ошибка при импорте инструментов с Финама</title>
    <published>2011-03-27T20:31:36Z</published>
    <updated>2011-03-27T20:31:36Z</updated>
    <author>
      <name>mantis</name>
      <uri>https://stocksharp.ru/users/28480/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;p&gt;Возникает ошибка при импорте с Финама валют, сырья, индексов (проверял на USD\RUB, EUR\USD, Золоте, Brent, Light, Hong Kong Index)
Пример ошибки при импорте золота:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
Finam 00:11:27.8750000 Стартовал для 5 инструментов.
Finam 00:11:27.9531250 Загружено 2265 сделок.
Finam 00:11:27.9531250 Первая сделка 18000200 для comex.GC@Finam за 02.01.2011 17:00:02.
Finam 00:11:27.9531250 Последняя сделка 20518300 для comex.GC@Finam за 02.01.2011 23:59:43.
Finam 00:11:28 System.ArgumentException: Инструмент comex.GC@Finam имеет нулевой шаг цены.
Parameter name: security
   at #=qI$AFfqtRkaWsSrk1G77y4YVftKihcZywxov00VALnWESHMbPDR6hSXTmKPOnd_$J..ctor(Security #=q_t_f7DAJxr3yMNYYfzx0Wg==, String #=qWLVUH$orL91fT9AB_4HN9w==, Func`2 #=q_nwOpf$JdlXAgBkOSKEZrg==, Func`2 #=qcNQcSzzVnMPP1IjXNIDq5A==, Func`2 #=qa5ooANemE8UfJF5rha41YQ==)
   at #=qrKR6kWyLe8ObgQHvOuVYRBdNY1eShDKIgufJnSUn6n0JOLES0qvPKuuXWk3NQyuZ..ctor(Security #=qG4MAajhSW0M9Q5AJXypkng==, String #=qSmbuIB5b_KNctzs4MO4e_Q==)
   at Ecng.Trading.Algo.Storages.TradingStorage.#=qH4PbuaYgtvAqqahwDaQJLc60ghyGpLapPXRH03U0Tt0=(Security #=qwmH8_ognY8UX5u2oaE_n5A==)
   at Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 handler)
   at Ecng.Trading.Algo.Storages.TradingStorage.GetTradeStorage(Security security)
   at Ecng.Trading.Hydra.Worker.&amp;lt;Download&amp;gt;b__10(IMarketDataSource source) in C:\Projects\StockSharp_3.0.19\Sources\Hydra\Hydra\Worker.cs:line 136

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;настройки финама:
&lt;img src="http://s54.radikal.ru/i143/1103/08/9252cad103cd.jpg" alt="" /&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1478/</id>
    <title type="text">Обозначения на графике</title>
    <published>2011-03-27T19:06:15Z</published>
    <updated>2011-03-27T19:06:15Z</updated>
    <author>
      <name>foRs</name>
      <uri>https://stocksharp.ru/users/28037/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Добрый день! Подскажите как можно на графике добавить какую-нибудь метку обозначающую вход или выход из позиции. Актуально для теста на истории. Наверно нужно в методе DrawCandles работать?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1477/</id>
    <title type="text">Именования методаданных</title>
    <published>2011-03-27T09:46:59Z</published>
    <updated>2011-03-27T09:46:59Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">&lt;p&gt;Сейчас поймал себя на мысли, что предложенное (возможно мной) раньше стиль именования колонок не очень удобен. Например, общая инфа по инструментам. Называется PlazaXXXCommonColumns. Глазами же я ищу инфу сначала Common, а затем уже что это - фьючерсы или опционы. Другими словами, все наоборот.&lt;/p&gt;
&lt;p&gt;А теперь возьмем PlazaVmXXXColumns. Здесь оказалось для меня удобнее. Я нашел сразу три файла для вариационки, и уже потом нашел, для чего именно (фьюч или опцион).&lt;/p&gt;
&lt;p&gt;Кто за первый, а кто за второй стиль именования? Я это переделаю сам.&lt;/p&gt;
&lt;p&gt;И еще переделаю названия полей в PlazaTableRegistry. Они должны совпадать с названиями PlazaXXXColumns.&lt;/p&gt;
</content>
  </entry>
</feed>