Хорошо.
В понедельник все приложу.

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

Еще меня беспокоит, что у финама с фортса данные идут медленно, медленнее, чем у АйТи инвест, например. frown И как я понял, это особенность транзака, которую так просто и не устранить. Если на минутках торговать, как я собираюсь, наверное проскальзывание будет сильное (

И как пожелание по улучшению хелпа. Он у Вас очень лаконичный. Не плохо было бы снабдить описание методов и классов примерами, как это сделано в Велслаб.

Code:
IsLastBarOfDay
bool IsLastBarOfDay(int bar)

Returns true if this is the last bar of a particular day for intraday data.  If the Bars object contains non-intraday data, IsLastBarOfDay always returns false.  If bar equals the last bar of data in the chart, IsLastBarOfDay finds the previous bar that was the last bar of the day, and compares the time values to determine if the bar is in fact the last bar of the current day.


--------------------------------------------------------------------------------

Example
protected override void Execute(){
    // Daytrading SMA crossover script (backtesting only) 
    // that closes all positions at the end of the day.

    DataSeries hMAFast = SMA.Series( Close, 10 );
    DataSeries hMASlow = SMA.Series( Close, 30 );
    PlotSeries( PricePane, hMAFast, Color.Green, WealthLab.LineStyle.Solid, 1 );
    PlotSeries( PricePane, hMASlow, Color.Red, WealthLab.LineStyle.Solid, 1 );
    
    for(int bar = hMASlow.FirstValidValue; bar < Bars.Count; bar++)
    {
        if (!IsLastPositionActive)
        {
            if ( Bars.IsLastBarOfDay( bar ) == false )
                if ( CrossOver( bar, hMAFast, hMASlow ) )
                BuyAtMarket( bar+1, "XOver" );
        }
        else
        {
            Position p = LastPosition;
            if ( Bars.IsLastBarOfDay( bar ) == true )
                SellAtClose( bar, p, "EOD" );
            else
            {
                // normal intraday exit logic
                if ( CrossUnder( bar, hMAFast, hMASlow ) )
                    SellAtMarket( bar+1, p, "XUnder" );
                }
        }
    }
}




Отредактировано rtstrader (Sun Jan 17 2010 02:52 PM)