Обращюсь с очередным вопросом: как сделать значение NRTR_WATR кратным 5 в строке "BuyAtStop( bar+1, NRTR_WATR[bar], "nrtr" )"?
[QUOTE]
using System; 
using System.Collections.Generic; 
//using System.Linq; 
using System.Drawing;
using System.Text; 
using WealthLab; 
using WealthLab.Indicators; 
using WealthLab.Optimizers; 
using WealthLab.Strategies; 
namespace WealthLab.Strategies
{
	//public class NRTR_ATR : WealthScript
	public class MyStrategy : WLRT.LiveTrading.WealthScript
	{
		//public MyStrategy():base(true, false, "L01-00000F00/15882-SUR") 
		public MyStrategy():base(true, false, "SPBFUT00W52/SPBFUT00W52Ден.средства") 
		//Это типа конструктор для определения счета в котором будем торговать.
		{}
		protected override void Execute()
		{
			SetLogScale( PricePane, false  );
			int TR_Period = 20; // период WMA для True Range
			int Dynamic_Channel_Period = 0; // длина динамического канала
			int Max_Channel_Period = 20; // верхнее ограничение на длину динамического канала
			int Trend = 0; // переменная для идентификации направления движения цены
			double Reverse = 0; // NRTR_WATR
			double HPrice=0; // максимальная цена за период
			double LPrice=0; // минимальная цена за период
			double Multiple = 2.0; // множитель для WATR
			
			DataSeries slowma = SMA.Series(Close, 8); 
			DataSeries fastma = SMA.Series(Close, 3);
			DataSeries peak = Highest.Series( High, 2 );
			DataSeries peaklow = Lowest.Series( Low, 2);
			DataSeries K = WMA.Series( TrueRange.Series( Bars ), TR_Period ) * Multiple;
			DataSeries NRTR_WATR = new DataSeries( Bars, "NRTR_WATR" );
			
			PlotSeries( PricePane, NRTR_WATR, Color.Blue, WealthLab.LineStyle.Dotted, 2 );
			//PlotSeries( PricePane, NRTR_TRADE, Color.Black, WealthLab.LineStyle.Dotted, 2 );
			
			PlotSeries( PricePane, peak, Color.Green, WealthLab.LineStyle.Solid, 1 );
			PlotSeries( PricePane, peaklow, Color.Red, WealthLab.LineStyle.Solid, 1 );
			SetShareSize(1);
			
			for(int bar = 20; bar < Bars.Count; bar++) 
			{
				if( Trend >= 0 ) // восходящий тренд
				{
					if (Max_Channel_Period > Dynamic_Channel_Period)
					{
						Dynamic_Channel_Period++; // увеличиваем период канала
						HPrice = Math.Max( Bars.Close[bar], Highest.Value(bar, Close, Dynamic_Channel_Period));
					}
					else HPrice = Math.Max( Bars.Close[bar], Highest.Value(bar, Close, Max_Channel_Period));
					Reverse = HPrice - K[bar]; // индикатор для восходящего тренда
					if( Bars.Close[bar] <= Reverse ) // переворот индикатора
					{
						Dynamic_Channel_Period = 0; // обнуляем период канала
						Trend = -1; // меняем ориентацию тренда
						LPrice = Bars.Close[bar];
						Reverse = LPrice + K[bar];
					}
				}
				if( Trend <= 0 ) // нисходящий тренд
				{
					if (Max_Channel_Period > Dynamic_Channel_Period)
					{
						Dynamic_Channel_Period++; // увеличиваем период канала
						LPrice = Math.Min( Bars.Close[bar], Lowest.Value(bar, Close, Dynamic_Channel_Period));
					}
					else LPrice = Math.Min( Bars.Close[bar], Lowest.Value(bar, Close, Max_Channel_Period));
					Reverse = LPrice + K[bar]; // индикатор для восходящего тренда
					if( Bars.Close[bar] >= Reverse ) // переворот индикатора
					{
						Dynamic_Channel_Period = 0; // обнуляем период канала
						Trend = 1; // меняем ориентацию тренда
						HPrice = Bars.Close[bar];
						Reverse = HPrice - K[bar];
					}
				}
				NRTR_WATR[bar] = Reverse;
				if (IsLastPositionActive)
				{
					//code your exit rules here
					//if ( CrossOver( bar, NRTR_WATR, Close) )
					//	SellAtMarket( bar+1, LastPosition);
					Position p = LastPosition;
					//ExitAtStop( bar+1, p, peaklow[bar], "exit" );
					ExitAtStop( bar+1, p, NRTR_WATR[bar], "nrtr" );
				}
				else
				{
					//code your entry rules here
					//if ( CrossOver( bar, Close, NRTR_WATR ) )
					//	BuyAtMarket( bar+1);
					//BuyAtStop( bar+1, peak[bar], "Breakout" );
					BuyAtStop( bar+1, NRTR_WATR[bar], "nrtr" );
				}
			}
		}
	}
}
[/QUOTE]