Removed some source code that appears to have been placed here by mistake.

This commit is contained in:
2025-02-22 22:13:40 -05:00
parent 709910a328
commit be6c105cbc
54 changed files with 0 additions and 4592 deletions

View File

@@ -1,91 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.AnalystRatingsView"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style x:Key="TradeItemStyle" TargetType="{x:Type telerik:RadGridView}">
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading Analyst Ratings...">
<Grid Background="LightGray">
<DockPanel>
<Grid DockPanel.Dock="Left" Margin="0,2,4,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="3" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<StackPanel Orientation="Vertical" Grid.Row="2" Grid.Column="0">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=symbolLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Date" HorizontalAlignment="Left" Target="{Binding ElementName=ratingDateLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Dates, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDate, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Button Margin="0,2" Content="Reset" HorizontalAlignment="Left" Command="{Binding Path=ResetCommand}"></Button>
</StackPanel>
<DockPanel Grid.Row="2" Grid.Column="2" >
<telerik:RadGridView SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemContainerStyle="{StaticResource TradeItemStyle}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" ItemsSource="{Binding Path=AllItems, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Date" DataMemberBinding="{Binding Path=Date,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:AnalystRatingsView}},Path=DataContext.Description}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Company Name" DataMemberBinding="{Binding Path=CompanyName}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Brokerage Firm" DataMemberBinding="{Binding Path=BrokerageFirm}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Type" DataMemberBinding="{Binding Path=Type}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="RatingsChange" DataMemberBinding="{Binding Path=RatingsChange}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Price Target" DataMemberBinding="{Binding Path=PriceTarget,StringFormat='{}{0:C}'}" />
<!--<telerik:GridViewDataColumn IsReadOnly="True" Header="ZacksRank" DataMemberBinding="{Binding Path=ZacksRank}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:AnalystRatingsView}},Path=DataContext.ZacksRank}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>-->
<!--<telerik:GridViewDataColumn IsReadOnly="True" Header="ZacksRankType" DataMemberBinding="{Binding Path=ZacksRankType}" />-->
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for AnalystRatingsView.xaml
/// </summary>
public partial class AnalystRatingsView : UserControl
{
public AnalystRatingsView()
{
InitializeComponent();
}
}
}

View File

@@ -1,158 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.BlotterView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:local="clr-namespace:TradeBlotter.UIUtils"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
>
<UserControl.Resources>
<CollectionViewSource
x:Key="Trades"
Source="{Binding Path=AllTrades,Mode=TwoWay}"
>
</CollectionViewSource>
<GroupStyle x:Key="TradeGroupStyle">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock
x:Name="txt"
Background="{StaticResource Brush_HeaderBackground}"
FontWeight="Bold"
Foreground="white"
Margin="1"
Padding="4,2,0,2"
Text="People"
/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=Name}" Value="True">
<Setter TargetName="txt" Property="Text" Value="Companies" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
<Style x:Key="TradeItemStyle" TargetType="{x:Type telerik:RadGridView}">
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<DockPanel>
<Grid DockPanel.Dock="Bottom" Margin="0,2,4,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Margin="5,0,5,0" Text="Exposure:" /><ContentPresenter Content="{Binding Path=TotalExposure}" ContentStringFormat="c"/>
<TextBlock Margin="5,0,5,0" Text="|" />
<TextBlock Margin="5,0,5,0" Text="MV:" /><ContentPresenter Content="{Binding Path=TotalMarketValue}" ContentStringFormat="c"/>
<TextBlock Margin="5,0,5,0" Text="|" />
<TextBlock Margin="5,0,5,0" Text="Gain/Loss (Open):" /><ContentPresenter Content="{Binding Path=TotalGainLoss}" ContentStringFormat="c"/>
<TextBlock Margin="5,0,5,0" Text="|" />
<TextBlock Margin="5,0,5,0" Text="Return (Open):" /><ContentPresenter Content="{Binding Path=TotalReturn}" ContentStringFormat="c"/>
</StackPanel>
<StackPanel Grid.Row="2" Grid.Column="0" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Margin="5,0,5,0" Text="Total Gain/Loss:" /><ContentPresenter Content="{Binding Path=TotalGainLossAll}" ContentStringFormat="c"/>
<TextBlock Margin="5,0,5,0" Text="|" />
<TextBlock Margin="5,0,5,0" Text="Total Return:" /><ContentPresenter Content="{Binding Path=TotalReturnAll}" ContentStringFormat="c"/>
</StackPanel>
<StackPanel Grid.Row="4" Grid.Column="0" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center">
<Button Margin="5,0,5,0" Width="100" Content="Update Prices" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<Button Margin="5,0,5,0" Width="65" Content="Delete" HorizontalAlignment="Left" Command="{Binding Path=DeleteCommand}"></Button>
<Button Margin="5,0,5,0" Width="65" Content="Edit" HorizontalAlignment="Left" Command="{Binding Path=EditCommand}"></Button>
</StackPanel>
</Grid>
<telerik:RadGridView CanUserSelect="True" dc:GridDataChangeBehavior.GridDataChangeProperty="{Binding Path=GridChanged}" SelectionMode="Single" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemContainerStyle="{StaticResource TradeItemStyle}" Grid.Row="0" Grid.Column="2" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" ItemsSource="{Binding Path=AllTrades, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="TradeId" DataMemberBinding="{Binding Path=TradeId}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}">
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:BlotterView}},Path=DataContext.CompanyDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Account" DataMemberBinding="{Binding Path=Account}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Trade Date" DataMemberBinding="{Binding Path=TradeDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Buy/Sell" DataMemberBinding="{Binding Path=BuySell}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Status" DataMemberBinding="{Binding Path=Status}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Shares" DataMemberBinding="{Binding Path=Shares,StringFormat='{}{0:0.000}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:SumFunctionShares />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Price" DataMemberBinding="{Binding Path=Price,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="DaysHeld" DataMemberBinding="{Binding Path=DaysHeld}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Exposure" DataMemberBinding="{Binding Path=Exposure,StringFormat='{}{0:C}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:SumFunctionExposure />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Current Price" DataMemberBinding="{Binding Path=CurrentPrice,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Timestamp" DataMemberBinding="{Binding Path=PriceDate}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Market Value" DataMemberBinding="{Binding Path=MarketValue,StringFormat='{}{0:C}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:SumFunctionMarketValue/>
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Weight" DataMemberBinding="{Binding Path=Weight,StringFormat='{}{0:P}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:SumFunctionWeight/>
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<!--DataMemberBinding="{Binding Path=GainLoss,StringFormat='{}{0:C}'}"-->
<telerik:GridViewDataColumn IsReadOnly="True" Header="Gain/Loss" >
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=GainLoss,StringFormat='{}{0:C}'}" Foreground="{Binding Path=GainLossColor}"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
<telerik:GridViewDataColumn.AggregateFunctions>
<local:SumFunctionGainLoss />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<!--DataMemberBinding="{Binding Path=Return,StringFormat='{}{0:P}'}"-->
<telerik:GridViewDataColumn IsReadOnly="True" Header="Return" >
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Return,StringFormat='{}{0:P}'}" Foreground="{Binding Path=ReturnColor}"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
<telerik:GridViewDataColumn.AggregateFunctions>
<local:TotalReturnFunction />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Todays Change" >
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=TodaysChange,StringFormat='{}{0:C}'}" Foreground="{Binding Path=TodaysChangeColor}"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
<telerik:GridViewDataColumn.AggregateFunctions>
<local:SumFunctionTodaysChange />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="SellDate" DataMemberBinding="{Binding Path=SellDate}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="SellPrice" DataMemberBinding="{Binding Path=SellPrice}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Commission" DataMemberBinding="{Binding Path=Commission,StringFormat='{}{0:C}'}" >
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for BlotterView.xaml
/// </summary>
public partial class BlotterView : UserControl
{
public BlotterView()
{
InitializeComponent();
}
}
}

View File

@@ -1,193 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.BollingerBandView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="89*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left"></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList}" ></ComboBox>
<!--<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Content="Symbol" HorizontalAlignment="Left"></Label>
<ComboBox Name="cbSymbols" ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol}" UseLayoutRounding="False" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Day Count" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=DayCounts, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDayCount}" ></ComboBox>
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
</StackPanel>
<CheckBox Content="Sync Trade To Band" IsChecked="{Binding Mode=TwoWay,Path=SyncTradeToBand}" Grid.ColumnSpan="3" Grid.Row="3" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
<CheckBox Content="Show Trade Labels" IsChecked="{Binding Mode=TwoWay,Path=ShowTradeLabels}" Grid.ColumnSpan="3" Grid.Row="4" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
<CheckBox Content="Show Insider Transactions" IsChecked="{Binding Mode=TwoWay,Path=CheckBoxShowInsiderTransactions}" Grid.ColumnSpan="3" Grid.Row="5" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
<CheckBox Content="Legend Visible" IsChecked="{Binding Mode=TwoWay,Path=CheckBoxLegendVisible}" Grid.ColumnSpan="3" Grid.Row="6" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
<CheckBox Content="Least Squares Fit" IsChecked="{Binding Mode=TwoWay,Path=LeastSquaresFit}" Grid.ColumnSpan="3" Grid.Row="7" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
<CheckBox Content="Show Risk Free" IsChecked="{Binding Mode=TwoWay,Path=ShowRiskFree}" Grid.ColumnSpan="3" Grid.Row="8" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<d3:ChartPlotter Grid.Row="0" Margin="10,10,20,10" x:Name="bollinger" BorderThickness="0" Background="WhiteSmoke" dc:ChartPlotterLegendBehavior.LegendVisibleProperty="{Binding LegendVisible}" LegendVisibility="Hidden" d3:Viewport2D.UsesApproximateContentBoundsComparison="False">
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis x:Name="countAxis" MaxWidth="40" MinWidth="40"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis x:Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:LineGraph x:Name="K" d3:NewLegend.Description="K" DataSource="{Binding K}" Stroke="Green" StrokeThickness="3"/>
<d3:LineGraph x:Name="L" d3:NewLegend.Description="L" DataSource="{Binding L}" Stroke="Green" StrokeThickness="3"/>
<d3:LineGraph x:Name="KL1" d3:NewLegend.Description="KL1" DataSource="{Binding KL1}" Stroke="Green"/>
<d3:LineGraph x:Name="LP1" d3:NewLegend.Description="LP1" DataSource="{Binding LP1}" Stroke="Green"/>
<d3:LineGraph x:Name="High" d3:NewLegend.Description="High" DataSource="{Binding High}" Stroke="Blue" StrokeThickness="2"/>
<d3:LineGraph x:Name="Low" d3:NewLegend.Description="Low" DataSource="{Binding Low}" Stroke="Red" StrokeThickness="2"/>
<d3:LineGraph x:Name="Close" d3:NewLegend.Description="Close" DataSource="{Binding Close}" Stroke="Black" StrokeThickness="2"/>
<d3:LineGraph x:Name="LeastSquares" d3:NewLegend.Description="LeastSquares" DataSource="{Binding LeastSquares}" Stroke="Orange" StrokeThickness="2"/>
<d3:LineGraph x:Name="SMAN" d3:NewLegend.Description="SMAN" DataSource="{Binding SMAN}" Stroke="Purple" StrokeThickness="2"/>
<d3:CursorCoordinateGraph x:Name="cursorGraph" LineStrokeThickness="1" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy"/>
<!--<d3:AxisCursorGraph/>-->
<d3:MarkerPointsGraph x:Name="MarkerPointsGraph" DataSource="{Binding TradePoints}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Yellow" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="ZeroPointMarkerPoints" DataSource="{Binding ZeroPoint}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Blue" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="RiskFreeRatePointMarkerPoints" DataSource="{Binding RiskFreeRatePoint}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Purple" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="InsiderTransactionPointMarkerPointsDisposedSmall" DataSource="{Binding InsiderTransactionPointDisposedSmall}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Red" Orientation="down" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="InsiderTransactionPointMarkerPointsDisposedMedium" DataSource="{Binding InsiderTransactionPointDisposedMedium}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Red" Orientation="down" Size="13">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="InsiderTransactionPointMarkerPointsDisposedLarge" DataSource="{Binding InsiderTransactionPointDisposedLarge}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Red" Orientation="down" Size="17">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="InsiderTransactionPointMarkerPointsAcquiredSmall" DataSource="{Binding InsiderTransactionPointAcquiredSmall}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Green" Orientation="up" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="InsiderTransactionPointMarkerPointsAcquiredMedium" DataSource="{Binding InsiderTransactionPointAcquiredMedium}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Green" Orientation="up" Size="13">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="InsiderTransactionPointMarkerPointsAcquiredLarge" DataSource="{Binding InsiderTransactionPointAcquiredLarge}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Green" Orientation="up" Size="17">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:Header Content="{Binding Title}" FontFamily="Arial"/>
<d3:VerticalAxisTitle Content="Price" FontFamily="Arial"/>
<d3:HorizontalAxisTitle Content="" FontFamily="Arial"/>
<d3:MarkersPointsGraph x:Name="TradeMarkersPointsGraph" DataSource="{Binding TradePoints}" Markers="{Binding Markers}"/>
<d3:MarkersPointsGraph x:Name="ZeroPointMarkersPointsGraph" DataSource="{Binding ZeroPoint}" Markers="{Binding ZeroPointMarkers}"/>
<d3:MarkersPointsGraph x:Name="RiskFreeRatePointMarkersPointsGraph" DataSource="{Binding RiskFreeRatePoint}" Markers="{Binding RiskFreeRatePointMarkers}"/>
<d3:MarkersPointsGraph x:Name="InsiderTransactionsPointMarkersPointsGraphDisposedSmall" DataSource="{Binding InsiderTransactionPointDisposedSmall}" Markers="{Binding InsiderTransactionPointMarkersDisposedSmall}"/>
<d3:MarkersPointsGraph x:Name="InsiderTransactionsPointMarkersPointsGraphDisposedMedium" DataSource="{Binding InsiderTransactionPointDisposedMedium}" Markers="{Binding InsiderTransactionPointMarkersDisposedMedium}"/>
<d3:MarkersPointsGraph x:Name="InsiderTransactionsPointMarkersPointsGraphDisposedLarge" DataSource="{Binding InsiderTransactionPointDisposedLarge}" Markers="{Binding InsiderTransactionPointMarkersDisposedLarge}"/>
<d3:MarkersPointsGraph x:Name="InsiderTransactionsPointMarkersPointsGraphAcquiredSmall" DataSource="{Binding InsiderTransactionPointAcquiredSmall}" Markers="{Binding InsiderTransactionPointMarkersAcquiredSmall}"/>
<d3:MarkersPointsGraph x:Name="InsiderTransactionsPointMarkersPointsGraphAcquiredMedium" DataSource="{Binding InsiderTransactionPointAcquiredMedium}" Markers="{Binding InsiderTransactionPointMarkersAcquiredMedium}"/>
<d3:MarkersPointsGraph x:Name="InsiderTransactionsPointMarkersPointsGraphAcquiredLarge" DataSource="{Binding InsiderTransactionPointAcquiredLarge}" Markers="{Binding InsiderTransactionPointMarkersAcquiredLarge}"/>
</d3:ChartPlotter>
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="1" Margin="10,0,20,10" Name="volume" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="volumedateAxis" />
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis Name="volumecountAxis" MinWidth="40" MaxWidth="40" />
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:Viewport2D.UsesApproximateContentBoundsComparison="False" x:Name="Volume" DataSource="{Binding Path=Volume}" Stroke="Black" StrokeThickness="1" />
<d3:CursorCoordinateGraph Name="volumeCursorGraphX" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" dc:CoordinateGraphBehavior.YTextMappingProperty="#,#" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:VerticalAxisTitle FontFamily="Arial" Content=""/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for BollingerBandView.xaml
/// </summary>
public partial class BollingerBandView : UserControl
{
public BollingerBandView()
{
InitializeComponent();
}
}
}

View File

@@ -1,182 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.DCFValuationView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="600">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Calculating discounted cashflows...">
<Grid Background="LightGray">
<!--<AdornerDecorator>-->
<Grid>
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<GroupBox BorderBrush="Black" Grid.Row="0" Grid.Column="0" Header="Parameters">
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Content="Symbol" HorizontalAlignment="Left"></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
</StackPanel>
</GroupBox>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".12*" />
<RowDefinition Height=".8*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width=".01*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<GridSplitter Background="LightBlue" ResizeDirection="Columns" Grid.Column="1" Grid.RowSpan="3" Grid.Row="0" Width="5" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"/>
<Label Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<DockPanel Grid.Row="1" Grid.Column="0" >
<telerik:RadGridView CanUserSelect="True" FontSize="10" SelectionMode="Single" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupPanel="false" ShowGroupFooters="False" ItemsSource="{Binding Path=AllDCF, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Dates" IsReadOnly="true" DataMemberBinding="{Binding Path=Date,StringFormat={}{0:MM/dd/yyyy}}" />
<telerik:GridViewDataColumn Header="Free Cashflow" IsReadOnly="true" DataMemberBinding="{Binding Path=Value,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Return" IsReadOnly="true" DataMemberBinding="{Binding Path=Return,StringFormat={}{0:P}}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
<GroupBox BorderBrush="Black" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" Header="Assumptions" FontSize="11" >
<StackPanel Grid.Row="0" Grid.Column="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="23*" />
<RowDefinition Height="19*" />
<RowDefinition Height="23*" />
<RowDefinition Height="19*" />
<RowDefinition Height="24*" />
<RowDefinition Height="18*" />
<RowDefinition Height="23*" />
<RowDefinition Height="19*" />
<RowDefinition Height="23*" />
<RowDefinition Height="19*" />
<RowDefinition Height="23*" />
<RowDefinition Height="19*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="62*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="56*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" FontSize="10" Content="Beta" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="The 3 year market beta." Grid.Row="1" Grid.Column="0" FontSize="10" HorizontalAlignment="Left" Width="55" IsReadOnly="true" Text="{Binding Path=Beta, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="0" Grid.Column="2" FontSize="10" Content="Market Return" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Hard coded to 11%." Grid.Row="1" Grid.Column="2" FontSize="10" HorizontalAlignment="Left" Width="55" IsReadOnly="true" Text="{Binding Path=HistoricalMarketReturn, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="0" Grid.Column="4" FontSize="10" Content="Risk Free Rate" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Current yield on 90 day Treasury." Grid.Row="1" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=RiskFreeRate, Mode=OneWay}" ></TextBox>
<Label Grid.Row="0" Grid.Column="6" FontSize="10" Content="Total Equity MV(E)" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Market Capitalization.." Grid.Row="1" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=TotalEquity, Mode=OneWay}" ></TextBox>
<Label Grid.Row="0" Grid.Column="8" FontSize="10" Content="Total Debt MV(D)" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Total Long and Short Term Debt." Grid.Row="1" Grid.Column="8" FontSize="10" IsReadOnly="true" Text="{Binding Path=TotalDebt, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="0" FontSize="10" Content="Total Capital Invested (V)" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="V=MV(D)+MV(E)" Grid.Row="3" Grid.Column="0" FontSize="10" IsReadOnly="true" Text="{Binding Path=TotalCapitalInvested, Mode=OneWay}" ></TextBox>
<Label Grid.Row="4" Grid.Column="0" FontSize="10" Content="WACC" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="WACC=rE*(E/V)+rD(1-Tc)*(D/V)" Background="{Binding Path=CapitalBackground}" Grid.Row="5" Grid.Column="0" FontSize="10" HorizontalAlignment="Left" Width="55" IsReadOnly="true" Text="{Binding Path=WACC, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="4" Grid.Column="2" FontSize="10" Content="ROIC" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Return on Invested Capital" Background="{Binding Path=CapitalBackground}" Grid.Row="5" Grid.Column="2" FontSize="10" HorizontalAlignment="Left" Width="55" IsReadOnly="true" Text="{Binding Path=ROIC, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="2" Grid.Column="2" FontSize="10" Content="Cost of Debt (rD)" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="rD=(Ei/D)*(1-Tc)" Grid.Row="3" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=CostOfDebt, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="4" FontSize="10" Content="Cost of Equity (rE)" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="rE=RFR+Beta*(Rm-RFR)" Grid.Row="3" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=CostOfEquity, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="6" FontSize="10" Content="Tax Rate (Tc)" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Tc=Tax Rate." Grid.Row="3" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=TaxRate, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="8" FontSize="10" Content="Interest Expense (Ei)" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Interest Expense (Balance Sheet)." Grid.Row="3" Grid.Column="8" FontSize="10" IsReadOnly="true" Text="{Binding Path=InterestExpense, Mode=OneWay}" ></TextBox>
<Label Grid.Row="4" Grid.Column="4" FontSize="10" Content="Oustanding Shares" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Outstanding Shares (Fundamentals)" Grid.Row="5" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=OutstandingShares, Mode=OneWay}" ></TextBox>
<Label Grid.Row="4" Grid.Column="6" FontSize="10" Content="MOS" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Est. Stock Price *.5" Grid.Row="5" Grid.Column="6" Background="{Binding Path=MOSBackground}" FontSize="10" IsReadOnly="true" Text="{Binding Path=MOS, Mode=OneWay}" ></TextBox>
<Label Grid.Row="4" Grid.Column="8" FontSize="10" Content="MOS80" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Est. Stock Price *.8" Grid.Row="5" Grid.Column="8" Background="{Binding Path=MOS80Background}" FontSize="10" IsReadOnly="true" Text="{Binding Path=MOS80, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="0" FontSize="10" Content="Present Value" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Sum of discounted cashflows." Grid.Row="7" Grid.Column="0" FontSize="10" IsReadOnly="true" Text="{Binding Path=PresentValue, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="2" FontSize="10" Content="Est. Stock Price" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="(Present Value - Debt) / Outstanding Shares." Grid.Row="7" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=EstimatedStockPrice, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="4" FontSize="10" Content="Latest Price" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Latest closing price in database." Grid.Row="7" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=CurrentPrice, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="6" FontSize="10" Content="Price Date" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Date of latest closing price in database." Grid.Row="7" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=PriceDate, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="0" FontSize="10" Content="Intrinsic Value" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Benjamin Graham : EPS*(8.5+(2*EPSGrowth))" Grid.Row="9" Grid.Column="0" FontSize="10" IsReadOnly="true" Text="{Binding Path=IntrinsicValue, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="2" FontSize="10" Content="RGV(Intrinsic)" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Intrinsic value / Last closing price." Grid.Row="9" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=RGVIntrinsic, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="4" FontSize="10" Content="Intrinsic Value(Rev.)" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Benjamin Graham : (EPS*(8.5+(2*EPSGrowth))+4.4) / Yield on 20-year AAA bonds." Grid.Row="9" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=IntrinsicValueRevised, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="6" FontSize="10" Content="RGV(Instrinsic Rev.)" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Intrinsic Value Rev./ Last closing price." Grid.Row="9" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=RGVIntrinsicValueRevised, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="8" FontSize="10" Content="FreeCashflow Growth" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Mean of freecashflow returns." Grid.Row="9" Grid.Column="8" FontSize="10" IsReadOnly="true" Text="{Binding Path=FreeCashflowGrowth, Mode=OneWay}" ></TextBox>
<Label Grid.Row="10" Grid.Column="0" FontSize="10" Content="Message" HorizontalAlignment="Left" ></Label>
<TextBox Grid.Row="11" Grid.Column="0" Grid.ColumnSpan="4" IsReadOnly="true" Text="{Binding Path=Message, Mode=OneWay}" ></TextBox>
</Grid>
</StackPanel>
</GroupBox>
</Grid>
</DockPanel>
</Grid>
<!--</AdornerDecorator>-->
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for DCFValuationView.xaml
/// </summary>
public partial class DCFValuationView : UserControl
{
public DCFValuationView()
{
InitializeComponent();
}
}
}

View File

@@ -1,103 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.DividendView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<GroupStyle x:Key="PricingGroupStyle">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock
x:Name="txt"
Background="{StaticResource Brush_HeaderBackground}"
FontWeight="Bold"
Foreground="White"
Margin="1"
Padding="4,2,0,2"
Text="People"
/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=Name}" Value="True">
<Setter TargetName="txt" Property="Text" Value="Companies" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
<Style x:Key="ValuationItemStyle" TargetType="{x:Type ListViewItem}">
<!--
Stretch the content of each cell so that we can
right-align text in the Total Sales column.
-->
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<!--
Bind the IsSelected property of a ListViewItem to the
IsSelected property of a PricingViewModel object.
-->
<Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ItemsControl.AlternationIndex" Value="1" />
<Condition Property="IsSelected" Value="False" />
<Condition Property="IsMouseOver" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#EEEEEEEE" />
</MultiTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading Dividend History...">
<Grid Background="LightGray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="3" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Vertical">
<Label Margin="2,0" Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox Margin="2,1" ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Margin="2,0" Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Margin="2,0" Content="Symbol" HorizontalAlignment="Left" ></Label>
<ComboBox Margin="2,1" ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Button Margin="2,1" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<Button Margin="2,1" Content="Get Latest DivExDates" HorizontalAlignment="Left" Command="{Binding Path=GetLatestDivExDatesCommand}"></Button>
</StackPanel>
<DockPanel Grid.Row="2" Grid.RowSpan="3" Grid.Column="2" >
<telerik:RadGridView AlternationCount="2" AlternateRowBackground="Bisque" IsReadOnly="true" ShowGroupFooters="False" ItemsSource="{Binding Path=AllDividendHistory, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" />
<telerik:GridViewDataColumn Header="DividendType" DataMemberBinding="{Binding Path=DividendType}" />
<telerik:GridViewDataColumn Header="CashAmount" DataMemberBinding="{Binding Path=CashAmount,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="DivExDate" DataMemberBinding="{Binding Path=DivExDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn Header="DeclarationDate" DataMemberBinding="{Binding Path=DeclarationDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn Header="RecordDate" DataMemberBinding="{Binding Path=RecordDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn Header="PaymentDate" DataMemberBinding="{Binding Path=PaymentDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn Header="Modified" DataMemberBinding="{Binding Path=Modified,StringFormat='{}{0:MM/dd/yyyy}'}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for DividendView.xaml
/// </summary>
public partial class DividendView : UserControl
{
public DividendView()
{
InitializeComponent();
}
}
}

View File

@@ -1,70 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.ETFHoldingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<CollectionViewSource
x:Key="ETFHoldings"
Source="{Binding Path=AllETFHoldings}"
>
</CollectionViewSource>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading ETF Holdings...">
<Grid Background="LightGray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="3" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<StackPanel Orientation="Vertical" Grid.Row="2" Grid.Column="0">
<Label Content="ETFSymbol" HorizontalAlignment="Center"></Label>
<ComboBox ItemsSource="{Binding Path=ETFSymbols, Mode=OneTime}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Search For..." HorizontalAlignment="Center" Target="{Binding ElementName=searchTypeLbl}" ></Label>
<TextBox Text="{Binding Path=SearchValue, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="False" IsReadOnly="False" />
<RadioButton Content="Search Symbol" IsChecked="{Binding Path=IsSearchSymbolChecked}"></RadioButton>
<RadioButton Content="Search Text" IsChecked="{Binding Path=IsSearchTextChecked}"></RadioButton>
<Button Content="Search" Command="{Binding Path=SearchCommand}"></Button>
</StackPanel>
<DockPanel Grid.Row="2" Grid.Column="2" >
<telerik:RadGridView AlternationCount="2" SelectionMode="Single" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" AlternateRowBackground="Bisque" ShowGroupFooters="True" ItemsSource="{Binding Path=AllETFHoldings, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="ETFSymbol" DataMemberBinding="{Binding Path=ETFHoldingSymbol}" />
<telerik:GridViewDataColumn Header="Symbol" DataMemberBinding="{Binding Path=HoldingSymbol}" />
<telerik:GridViewDataColumn Header="Share Class" DataMemberBinding="{Binding Path=HoldingSymbolShareClass}" />
<telerik:GridViewDataColumn Header="Company" DataMemberBinding="{Binding Path=HoldingCompanyName}" />
<telerik:GridViewDataColumn Header="Percent of Assets" DataMemberBinding="{Binding Path=PercentOfAssets}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for ETFHoldingsView.xaml
/// </summary>
public partial class ETFHoldingView : UserControl
{
public ETFHoldingView()
{
InitializeComponent();
}
}
}

View File

@@ -1,73 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.EarningsAnnouncementView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
>
<UserControl.Resources>
<Style x:Key="TradeItemStyle" TargetType="{x:Type telerik:RadGridView}">
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<DockPanel>
<Grid DockPanel.Dock="Left" Margin="0,2,4,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="3" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<StackPanel Orientation="Vertical" Grid.Row="2" Grid.Column="0">
<Label Content="Select Days Out..." HorizontalAlignment="Center"></Label>
<TextBox Text="{Binding Path=DaysOut, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="False" IsReadOnly="False" />
<Button Content="Go" Command="{Binding Path=RefreshCommand}"></Button>
</StackPanel>
<DockPanel Grid.Row="2" Grid.Column="2" >
<telerik:RadGridView CanUserSelect="True" SelectionMode="Single" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemContainerStyle="{StaticResource TradeItemStyle}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" ItemsSource="{Binding Path=AllItems, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Company Name" DataMemberBinding="{Binding Path=CompanyName}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Next Earnings Date" DataMemberBinding="{Binding Path=NextEarningsDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Days" DataMemberBinding="{Binding Path=DaysFromToday}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Last Price" DataMemberBinding="{Binding Path=LastPrice,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Upside" DataMemberBinding="{Binding Path=Upside,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Downside" DataMemberBinding="{Binding Path=Downside,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Upside(%)" DataMemberBinding="{Binding Path=UpsidePcnt,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Downside(%)" DataMemberBinding="{Binding Path=DownsidePcnt,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="PE" DataMemberBinding="{Binding Path=PE,StringFormat='{}{0:F}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="PEG" DataMemberBinding="{Binding Path=PEG,StringFormat='{}{0:F}'}" />
<!--<telerik:GridViewDataColumn IsReadOnly="True" Header="Implied Earnings Growth" DataMemberBinding="{Binding Path=AnticipatedEarningsGrowth,StringFormat='{}{0:P}'}" />-->
<telerik:GridViewDataColumn IsReadOnly="True" Header="Implied Earnings Growth" DataMemberBinding="{Binding Path=AnticipatedEarningsGrowthStr}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="PEG Valuation" DataMemberBinding="{Binding Path=PEGValuation}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Pricing Date" DataMemberBinding="{Binding Path=PricingDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Fundamental Date" DataMemberBinding="{Binding Path=FundamentalDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Price Target Date" DataMemberBinding="{Binding Path=PriceTargetDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for EarningsAnnouncementView.xaml
/// </summary>
public partial class EarningsAnnouncementView : UserControl
{
public EarningsAnnouncementView()
{
InitializeComponent();
}
}
}

View File

@@ -1,136 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.GainLossView"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="1024">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}" >
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="10*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Account" HorizontalAlignment="Left" Target="{Binding ElementName=accountListLbl}" ></Label>
<wpfx:CheckComboBox ItemsSource="{Binding Path=Accounts, Mode=OneTime}" MaxWidth="100" SelectedValue="{Binding Path=SelectedAccounts, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></wpfx:CheckComboBox>
<StackPanel Orientation="Horizontal">
<CheckBox Content="Suspend Update" IsChecked="{Binding Path=CheckBoxSuspendUpdate,Mode=TwoWay}" HorizontalAlignment="Left" />
</StackPanel>
<Label Content="Symbols" HorizontalAlignment="Left" Target="{Binding ElementName=symbolListLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=TwoWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Button Margin="0,2" Content="{Binding Path=PercentButtonText}" HorizontalAlignment="Left" Command="{Binding Path=ToggleReturnOrPercentCommand}"></Button>
<Button Margin="0,2" Content="{Binding Path=ActiveTotalButtonText}" HorizontalAlignment="Left" Command="{Binding Path=ToggleActiveOrTotalCommand}"></Button>
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<CheckBox Content="Legend Visible" IsChecked="{Binding Path=CheckBoxLegendVisible}" Grid.ColumnSpan="3" Grid.Row="5" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
<CheckBox Content="Least Squares Fit" IsChecked="{Binding Mode=TwoWay,Path=LeastSquaresFit}" Grid.ColumnSpan="3" Grid.Row="7" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
<CheckBox Content="Include Dividends" IsChecked="{Binding Mode=TwoWay,Path=CheckBoxIncludeDividends}" Grid.ColumnSpan="3" Grid.Row="9" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
</StackPanel>
<Grid Grid.Column="1" Grid.RowSpan="2" >
<Grid.RowDefinitions>
<RowDefinition Height=".7*" />
<RowDefinition Height="2" />
<RowDefinition Height=".5*" />
</Grid.RowDefinitions>
<GridSplitter Background="LightBlue" ResizeDirection="Rows" Grid.Column="1" Grid.ColumnSpan="1" Grid.Row="1" Width="Auto" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"/>
<Border CornerRadius="6" BorderBrush="WhiteSmoke" Background="LightGray" BorderThickness="2" Padding="8">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="0" Name="gainLoss" Margin="10,10,20,10" dc:ChartPlotterLegendBehavior.LegendVisibleProperty="{Binding Path=LegendVisible}" LegendVisibility="Hidden" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis Name="countAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:NewLegend.Description="Gain/Loss" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" x:Name="Data" DataSource="{Binding Path=Data}" Stroke="MidnightBlue" StrokeThickness="2"/>
<d3:LineGraph d3:NewLegend.Description="MA21" x:Name="MA21" DataSource="{Binding Path=MA21}" Stroke="Green" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="MA55" x:Name="MA55" DataSource="{Binding Path=MA55}" Stroke="LimeGreen" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="MA90" x:Name="MA90" DataSource="{Binding Path=MA90}" Stroke="LightGreen" StrokeThickness="2" />
<d3:LineGraph x:Name="LeastSquares" d3:NewLegend.Description="{Binding Path=LeastSquaresTitle}" DataSource="{Binding LeastSquares}" Stroke="Orange" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraph" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<d3:Header FontFamily="Arial" Content="{Binding Path=Title}"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Gain/Loss"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="Date" />
</d3:ChartPlotter>
</Border>
<Grid Grid.Row="2" Grid.Column="1" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="3" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<telerik:RadGridView Background="WhiteSmoke" Grid.Row="0" Grid.Column="0" SelectedItem="{Binding SelectedGainLossCompoundItem, Mode=TwoWay}" ItemsSource="{Binding Path=GainLossCompoundModelCollection, ValidatesOnDataErrors=False,Mode=OneWay}" CanUserSelect="True" SelectionMode="Single" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" AutoGenerateColumns="False" Margin="0,3,0.5,-3" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Date" DataMemberBinding="{Binding Path=Date,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Exposure" DataMemberBinding="{Binding Path=ActiveExposure,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Dividends" IsVisible="{Binding Path=CheckBoxIncludeDividends}" DataMemberBinding="{Binding Path=TotalDividendsPaid,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Active G/L" DataMemberBinding="{Binding Path=ActiveGainLoss,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Active G/L(%)" DataMemberBinding="{Binding Path=ActiveGainLossPercent,StringFormat='{}{0:N3}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Total G/L" DataMemberBinding="{Binding Path=TotalGainLoss,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Total G/L(%)" DataMemberBinding="{Binding Path=TotalGainLossPercent,StringFormat='{}{0:N3}'}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
<telerik:RadGridView Background="WhiteSmoke" Grid.Row="0" Grid.Column="2" SelectedItem="{Binding SelectedGainLossSummaryItem, Mode=TwoWay}" ItemsSource="{Binding Path=GainLossSummaryItemCollection, ValidatesOnDataErrors=False,Mode=OneWay}" CanUserSelect="True" SelectionMode="Single" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" AutoGenerateColumns="False" Margin="0,3,0.5,-3" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Date" DataMemberBinding="{Binding Path=Date,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:GainLossView}},Path=DataContext.Parity}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Current G/L" DataMemberBinding="{Binding Path=CurrentGainLoss,StringFormat='{}{0:C}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<telerik:SumFunction ResultFormatString="{}{0:C}" />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Previous G/L" DataMemberBinding="{Binding Path=PreviousGainLoss,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Change(%)" DataMemberBinding="{Binding Path=ChangePercent,StringFormat='{}{0:N3}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Change" DataMemberBinding="{Binding Path=Change,StringFormat='{}{0:C}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<telerik:SumFunction ResultFormatString="{}{0:C}" />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
<GridSplitter Background="LightBlue" ResizeDirection="Columns" Grid.Column="1" Grid.ColumnSpan="1" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"/>
</Grid>
</Grid>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using TradeBlotter.UIUtils;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for GainLossView.xaml
/// </summary>
public partial class GainLossView : UserControl
{
public GainLossView()
{
InitializeComponent();
}
}
}

View File

@@ -1,88 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.HeadlinesView"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style x:Key="TradeItemStyle" TargetType="{x:Type telerik:RadGridView}">
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading Headlines...">
<Grid Background="LightGray">
<DockPanel>
<Grid DockPanel.Dock="Left" Margin="0,2,4,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="3" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<StackPanel Orientation="Vertical" Grid.Row="2" Grid.Column="0">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=symbolLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Date" HorizontalAlignment="Left" Target="{Binding ElementName=ratingDateLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Dates, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDate, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
</StackPanel>
<DockPanel Grid.Row="2" Grid.Column="2" >
<telerik:RadGridView SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemContainerStyle="{StaticResource TradeItemStyle}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" ItemsSource="{Binding Path=AllItems, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Date" DataMemberBinding="{Binding Path=Date,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Updated" DataMemberBinding="{Binding Path=Modified,StringFormat='{}{0:HH:mm:ss}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:HeadlinesView}},Path=DataContext.Parity}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Company Name" DataMemberBinding="{Binding Path=CompanyName}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:HeadlinesView}},Path=DataContext.Description}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" MaxWidth="1024" Header="Headline" DataMemberBinding="{Binding Path=Entry}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Source" DataMemberBinding="{Binding Path=Source}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for HeadlinesView.xaml
/// </summary>
public partial class HeadlinesView : UserControl
{
public HeadlinesView()
{
InitializeComponent();
}
}
}

View File

@@ -1,445 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.HistoricalView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style x:Key="StandardBorder" TargetType="Border">
<Setter Property="BorderBrush" Value="Gainsboro" />
<Setter Property="BorderThickness" Value="1,1,1,0" />
<Setter Property="Background" Value="GhostWhite" />
</Style>
<Style x:Key="RedBorder" TargetType="Border">
<Setter Property="BorderBrush" Value="Red" />
<Setter Property="BorderThickness" Value="0,0,0,1" />
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading Historical Time Series...">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left"></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Content="Symbol" HorizontalAlignment="Left"></Label>
<ComboBox x:Name="symbolCmb" ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Button Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
</StackPanel>
</Grid>
<ScrollViewer x:Name="scrollviewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Left" FontSize="20"></Label>
<!-- Revenue-->
<Border Grid.Row="1" Grid.Column="0" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="1" Grid.Column="0" Name="revenue" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="revenueDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="revenueCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=Revenue}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphRevenue" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=RevenueTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Annual Revenue (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Quarterly Revenue-->
<Border Grid.Row="1" Grid.Column="2" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="1" Grid.Column="2" Name="quarterlyrevenue" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="quarterlyRevenueDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="quarterlyRevenueCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=QuarterlyRevenue}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphQuarterlyRevenue" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=QuarterlyRevenueTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Quarterly Revenue (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Working Capital-->
<Border Grid.Row="1" Grid.Column="4" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="1" Grid.Column="4" Name="workingcapital" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="workingCapitalDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="workingCapitalCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=WorkingCapital}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphWorkingCapital" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=WorkingCapitalTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Working Capital (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Inventory-->
<Border Grid.Row="3" Grid.Column="0" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="3" Grid.Column="0" Name="inventory" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="inventoryDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="inventoryCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=Inventory}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphInventory" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=InventoryTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Annual Inventory (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Quarterly Inventory-->
<Border Grid.Row="3" Grid.Column="2" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="3" Grid.Column="2" Name="quarterlyinventory" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="quarterlyInventoryDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="quarterlyInventoryCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=QuarterlyInventory}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphQuarterlyInventory" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=QuarterlyInventoryTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Quarterly Inventory (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- BVPS -->
<Border Grid.Row="3" Grid.Column="4" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="3" Grid.Column="4" Name="bvps" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="bvpsDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="bvpsCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=BVPS}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphBVPS" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=BVPSTitle}" HorizontalAlignment="Right" FontSize="12" />
<d3:VerticalAxisTitle FontFamily="Arial" Content="BVPS"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Goodwill-->
<Border Grid.Row="5" Grid.Column="0" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="5" Grid.Column="0" Name="goodwill" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="goodwillDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="goodwillCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=Goodwill}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphGoodwill" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=GoodwillTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Annual Goodwill (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Quarterly Goodwill-->
<Border Grid.Row="5" Grid.Column="2" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="5" Grid.Column="2" Name="quarterlygoodwill" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="quarterlyGoodwillDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="quarterlyGoodwillCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=QuarterlyGoodwill}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphQuarterlyGoodwill" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=QuarterlyGoodwillTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Quarterly Goodwill (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Net Income Available To Common Shareholders-->
<Border Grid.Row="5" Grid.Column="4" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="5" Grid.Column="4" Name="niatcs" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="niatcsDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="niatcsCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=NetIncomeAvailableToCommonShareholders}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphNIATCS" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=NetIncomeAvailableToCommonShareholdersTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="NIACS (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- ROIC-->
<Border Grid.Row="7" Grid.Column="0" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="7" Grid.Column="0" Name="roic" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="roicDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="roicCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=ROIC}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphROIC" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=ROICTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="ROIC"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- ROA-->
<Border Grid.Row="7" Grid.Column="2" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="11" Grid.Column="0" Name="roa" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="roaDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="roaCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=ROA}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphROA" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=ROATitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="ROA"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- ROIC/WACC-->
<Border Grid.Row="7" Grid.Column="4" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="7" Grid.Column="4" Name="roicwacc" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="roicwaccDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="roicwaccCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=ROICWACC}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphROICWACC" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=ROICWACCTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="ROIC - WACC"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- FreeCashflow -->
<Border Grid.Row="9" Grid.Column="0" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="9" Grid.Column="0" Name="freecashflow" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="fcfDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="fcfCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=FreeCashflow}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphFreeCashflow" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=FCFTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Free Cashflow (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- OperatingCashflow-->
<Border Grid.Row="9" Grid.Column="2" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="9" Grid.Column="2" Name="operatingcashflow" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="ocfDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="ocfCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=OperatingCashflow}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphOperatingCashflow" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=OCFTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Operating Cashflow"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- OperatingIncome-->
<Border Grid.Row="9" Grid.Column="4" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="9" Grid.Column="4" Name="operatingIncome" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="oiDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="oiCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=OperatingIncome}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphOperatingIncome" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=OITitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Operating Income - EBIT"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Profit Margin-->
<Border Grid.Row="11" Grid.Column="0" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="11" Grid.Column="0" Name="pm" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="pmDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="pmCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=ProfitMargin}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphPM" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=ProfitMarginTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Profit Margin (%)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- EPS -->
<Border Grid.Row="11" Grid.Column="2" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="11" Grid.Column="2" Name="eps" Margin="10,19,20,0.5" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="epsDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="epsCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=EPS}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphEPS" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=EPSTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="EPS ($)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- PE-->
<Border Grid.Row="11" Grid.Column="4" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="11" Grid.Column="4" Name="pe" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="peDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="peCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=PE}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphPE" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=PETitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="PE (1xStdDev)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Total Cash -->
<Border Grid.Row="13" Grid.Column="0" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="13" Grid.Column="0" Name="TotalCash" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="totalCashDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalNumericAxis Name="totalCashCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=TotalCash}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphTotalCash" dc:CoordinateGraphBehavior.YTextMappingProperty="C" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<d3:Header FontFamily="Arial" Content="{Binding Path=TotalCashTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Total Cash (Mils)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- Dividend Load -->
<Border Grid.Row="13" Grid.Column="2" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="13" Grid.Column="2" Name="DividendLoad" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dividendLoadDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalNumericAxis Name="dividendLoadCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=DividendLoad}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphDividendLoad" dc:CoordinateGraphBehavior.YTextMappingProperty="N2" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<d3:Header FontFamily="Arial" Content="{Binding Path=DividendLoadTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Dividend Load (%) (1xStdDev)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
<!-- DebtToEquity -->
<Border Grid.Row="13" Grid.Column="4" Style="{StaticResource StandardBorder}">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="13" Grid.Column="4" Name="DebtToEquity" Margin="10,10,20,10" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="debtToEquityDateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalNumericAxis Name="debtToEquityCountAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph DataSource="{Binding Path=DebtToEquity}" Stroke="Green" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraphDebtToEquity" dc:CoordinateGraphBehavior.YTextMappingProperty="N2" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<d3:Header FontFamily="Arial" Content="{Binding Path=DebtToEquityTitle}" HorizontalAlignment="Right" FontSize="12"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Debt To Equity (Ratio)"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</Border>
</Grid>
</ScrollViewer>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for HistoricalView.xaml
/// </summary>
public partial class HistoricalView : UserControl
{
public HistoricalView()
{
InitializeComponent();
}
}
}

View File

@@ -1,164 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.MACDView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Generating MACD...">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Content="Symbol:" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Content="Symbol:" HorizontalAlignment="Left" ></Label>
<ComboBox x:Name="symbolCmb" ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Day Count" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=DayCounts, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDayCount, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<CheckBox Margin="0,2" Content="Legend Visible" HorizontalAlignment="Left" IsChecked="{Binding Path=CheckBoxLegendVisible, Mode=TwoWay}"></CheckBox>
</StackPanel>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="3" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="0" Grid.Column="0 " Name="MACDSlow" Margin="10,10,20,10" LegendVisibility="Hidden" dc:ChartPlotterLegendBehavior.LegendVisibleProperty="{Binding Path=LegendVisible}" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" >
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxisSlow"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="countAxisSlow"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:NewLegend.Description="Signal" DataSource="{Binding Path=SignalSlow}" Stroke="Red" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="MACD" DataSource="{Binding Path=MACDSlow}" Stroke="Blue" StrokeThickness="2" />
<d3:CursorCoordinateGraph Name="cursorGraphMACDSlow" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:MarkerPointsGraph x:Name="MACDSlowWeakBuy" DataSource="{Binding MACDSlowWeakBuy}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Green" Orientation="up" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="MACDSlowStrongBuy" DataSource="{Binding MACDSlowStrongBuy}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Green" Orientation="up" Size="17">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="MACDSlowWeakSell" DataSource="{Binding MACDSlowWeakSell}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="red" Orientation="down" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="MACDSlowStrongSell" DataSource="{Binding MACDSlowStrongSell}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="red" Orientation="down" Size="17">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:Header FontFamily="Arial" FontSize="12" Content="{Binding Path=TitleSlow}"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Signal"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="Date" />
</d3:ChartPlotter>
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="0" Grid.Column="2" Name="MACDFast" Margin="10,10,20,10" LegendVisibility="Hidden" dc:ChartPlotterLegendBehavior.LegendVisibleProperty="{Binding Path=LegendVisible}" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" >
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxisFast"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalIntegerAxis Name="countAxisFast"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:NewLegend.Description="Signal" DataSource="{Binding Path=SignalFast}" Stroke="Red" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="MACD" DataSource="{Binding Path=MACDFast}" Stroke="Blue" StrokeThickness="2" />
<d3:CursorCoordinateGraph Name="cursorGraphMACDFast" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:MarkerPointsGraph x:Name="MACDFastWeakBuy" DataSource="{Binding MACDFastWeakBuy}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Green" Orientation="up" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="MACDFastStrongBuy" DataSource="{Binding MACDFastStrongBuy}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="Green" Orientation="up" Size="17">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="MACDFastWeakSell" DataSource="{Binding MACDFastWeakSell}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="red" Orientation="down" Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="MACDFastStrongSell" DataSource="{Binding MACDFastStrongSell}">
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Fill="red" Orientation="down" Size="17">
<d3:TrianglePointMarker.Pen>
<Pen Brush="Black" Thickness="1"/>
</d3:TrianglePointMarker.Pen>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:Header FontFamily="Arial" FontSize="12" Content="{Binding Path=TitleFast}"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Signal"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="Date" />
</d3:ChartPlotter>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for MACDView.xaml
/// </summary>
public partial class MACDView : UserControl
{
public MACDView()
{
InitializeComponent();
}
}
}

View File

@@ -1,218 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.MomentumView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local="clr-namespace:TradeBlotter.UIUtils"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="340" d:DesignWidth="768">
<UserControl.Resources>
<Style x:Key="MomentumItemStyle" TargetType="{x:Type telerik:RadGridView}">
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<DockPanel>
<Grid DockPanel.Dock="Left" Margin="0,2,4,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="3" />
<ColumnDefinition Width="11*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="3" />
<RowDefinition Height="1*" />
<RowDefinition Height="3" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<StackPanel Orientation="Vertical" Grid.Row="2" Grid.RowSpan="5" Grid.Column="0">
<Label Content="Date" HorizontalAlignment="Left" ></Label>
<telerik:RadDatePicker SelectableDateStart="{Binding Path=SelectableDateStart}" SelectableDateEnd="{Binding Path=SelectableDateEnd}" VerticalAlignment="Top" HorizontalAlignment="Left" SelectedDate="{Binding Path=SelectedDate,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<Label Content="Parameters" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=Parameters, Mode=OneWay}" SelectedItem="{Binding Path=SelectedParameter, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<TextBox Height="24" MinWidth="80" HorizontalAlignment="Stretch" IsReadOnly="true" Text="{Binding Path=ParameterValue, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Button Margin="0,2" Content="Find Candidates" HorizontalAlignment="Stretch" Command="{Binding Path=RunCommand}"></Button>
<Label Content="Monitor Interval" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=MonitorIntervals, Mode=OneWay}" SelectedItem="{Binding Path=SelectedMonitorInterval, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Button Margin="0,2" IsEnabled="{Binding Path=CanMonitor}" Content="{Binding Path=MonitorStatus}" HorizontalAlignment="Stretch" Command="{Binding Path=Monitor}"></Button>
<Button Content="Load Trade File" HorizontalAlignment="Stretch" Command="{Binding Path=LoadFile}"></Button>
</StackPanel>
<DockPanel x:Name="DockPanel1" Grid.Row="2" Grid.Column="2">
<telerik:RadGridView SelectedItem="{Binding Path=SelectedItem, Mode=TwoWay}" ItemContainerStyle="{StaticResource MomentumItemStyle}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" ItemsSource="{Binding Path=AllItems, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding CandidateMenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:MomentumView}},Path=DataContext.CompanyDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="AnalysisDate" DataMemberBinding="{Binding Path=AnalysisDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="CumReturn252" DataMemberBinding="{Binding Path=CumReturn252,StringFormat='{}{0:P2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="DayCount" DataMemberBinding="{Binding Path=DayCount,StringFormat='{}{0:N0}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="IDIndicator" DataMemberBinding="{Binding Path=IDIndicator,StringFormat='{}{0:N2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="MaxDrawdown" DataMemberBinding="{Binding Path=MaxDrawdown,StringFormat='{}{0:P2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="MaxUpside" DataMemberBinding="{Binding Path=MaxUpside,StringFormat='{}{0:P2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="PE" DataMemberBinding="{Binding Path=PE,StringFormat='{}{0:N2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Beta" DataMemberBinding="{Binding Path=Beta,StringFormat='{}{0:N2}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:MomentumView}},Path=DataContext.BetaDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Velocity" DataMemberBinding="{Binding Path=Velocity,StringFormat='{}{0:P2}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:MomentumView}},Path=DataContext.VelocityDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="ZacksRank" DataMemberBinding="{Binding Path=ZacksRank}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Volume" DataMemberBinding="{Binding Path=Volume,StringFormat='{}{0:N2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Return1D" DataMemberBinding="{Binding Path=Return1D,StringFormat='{}{0:N3}'}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
<DockPanel x:Name="DockPanel2" Grid.Row="4" Grid.Column="2" >
<Grid>
<Grid x:Name="PositionsView" Visibility="Visible">
<!--<Border Background="Blue"/>-->
<telerik:RadGridView SelectedItem="{Binding Path=SelectedPosition, Mode=TwoWay}" ItemContainerStyle="{StaticResource MomentumItemStyle}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" ItemsSource="{Binding Path=AllPositions, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="PositionGridContextMenu" StaysOpen="False" ItemsSource="{Binding PositionsMenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:MomentumView}},Path=DataContext.CompanyDescriptionSelectedPosition}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Slot" DataMemberBinding="{Binding Path=SlotAsString}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Purchased" DataMemberBinding="{Binding Path=PurchaseDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Sold" DataMemberBinding="{Binding Path=SellDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Days" DataMemberBinding="{Binding Path=DaysHeld}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Shares" DataMemberBinding="{Binding Path=Shares,StringFormat='{}{0:N0}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:MomentumPositionSumFunctionShares />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Purch.Price" DataMemberBinding="{Binding Path=PurchasePrice,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="CurrentPrice" >
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=CurrentPrice,StringFormat='{}{0:C}'}" Foreground="{Binding Path=CurrentPriceColor}"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Updated" DataMemberBinding="{Binding Path=LastUpdated,StringFormat='{}{0:MM/dd/yyyy HH:mm:ss}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Exposure">
<telerik:GridViewDataColumn.AggregateFunctions>
<local:MomentumPositionSumFunctionExposure />
</telerik:GridViewDataColumn.AggregateFunctions>
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=ActiveExposure,StringFormat='{}{0:C}'}" Foreground="{Binding Path=ActiveExposureColor}"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Mkt.Value">
<telerik:GridViewDataColumn.AggregateFunctions>
<local:MomentumPositionSumFunctionMarketValue />
</telerik:GridViewDataColumn.AggregateFunctions>
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=ActiveMarketValue,StringFormat='{}{0:C}'}" Foreground="{Binding Path=ActiveMarketValueColor}"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="GainLoss" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:MomentumPositionSumFunctionGainLoss />
</telerik:GridViewDataColumn.AggregateFunctions>
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=GainLoss,StringFormat='{}{0:C}'}" Foreground="{Binding Path=GainLossColor}"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="GainLoss(%)" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:MomentumPositionSumFunctionGainLossPcnt />
</telerik:GridViewDataColumn.AggregateFunctions>
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=GainLossPcnt,StringFormat='{}{0:P3}'}" Foreground="{Binding Path=GainLossPcntColor}"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="IDIndicator" DataMemberBinding="{Binding Path=IDIndicator,StringFormat='{}{0:N2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="MaxDrawdown" DataMemberBinding="{Binding Path=MaxDrawdown,StringFormat='{}{0:P2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="MaxUpside" DataMemberBinding="{Binding Path=MaxUpside,StringFormat='{}{0:P2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="PE" DataMemberBinding="{Binding Path=PE,StringFormat='{}{0:N2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Beta" DataMemberBinding="{Binding Path=Beta,StringFormat='{}{0:N2}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="ZacksRank" DataMemberBinding="{Binding Path=ZacksRank}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Volume" DataMemberBinding="{Binding Path=Volume,StringFormat='{}{0:N0}'}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
<!--<Grid x:Name="ConfigurationView" Visibility="Hidden">
<Border Background="Red"/>
</Grid>-->
</Grid>
</DockPanel>
<GridSplitter Panel.ZIndex="1" Background="LightBlue" ResizeDirection="Rows" Grid.Column="2" Grid.Row="3" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"/>
<GridSplitter Grid.Row="1" Grid.Column="1" ResizeDirection="Columns" Grid.RowSpan="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="LightBlue" Width="3"/>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for MomentumView.xaml
/// </summary>
public partial class MomentumView : UserControl
{
public MomentumView()
{
InitializeComponent();
}
}
}

View File

@@ -1,87 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.MovingAverageView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Content="Symbol:" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Content="Symbol:" HorizontalAlignment="Left"></Label>
<ComboBox x:Name="symbolCmb" ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Day Count" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=DayCounts, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDayCount, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<CheckBox Margin="0,2" Content="Legend Visible" HorizontalAlignment="Left" IsChecked="{Binding Path=CheckBoxLegendVisible, Mode=TwoWay}"></CheckBox>
</StackPanel>
</Grid>
<d3:ChartPlotter Name="movingaverage" Margin="10,10,20,10" dc:ChartPlotterLegendBehavior.LegendVisibleProperty="{Binding Path=LegendVisible}" LegendVisibility="Hidden" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" >
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis Name="countAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:NewLegend.Description="Close" x:Name="Close" DataSource="{Binding Path=Close}" Stroke="Black" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="High" x:Name="High" DataSource="{Binding Path=High}" Stroke="Blue" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="Low" x:Name="Low" DataSource="{Binding Path=Low}" Stroke="Red" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="MA200" x:Name="MA200" DataSource="{Binding Path=MA200}" Stroke="Lime" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="MA55" x:Name="MA55" DataSource="{Binding Path=MA55}" Stroke="LightGreen" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="MA21" x:Name="MA21" DataSource="{Binding Path=MA21}" Stroke="Green" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="MA5" x:Name="MA5" DataSource="{Binding Path=MA5}" Stroke="Goldenrod" StrokeThickness="2" />
<d3:CursorCoordinateGraph Name="cursorGraph" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:MarkerPointsGraph x:Name="MarkerPointsGraph" DataSource="{Binding Path=TradePoints}" >
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Thickness="1">
<Pen.Brush >
<SolidColorBrush Color="Black">
</SolidColorBrush>
</Pen.Brush>
</Pen>
</d3:TrianglePointMarker.Pen>
<d3:TrianglePointMarker.Fill>
<SolidColorBrush Color="Yellow">
</SolidColorBrush>
</d3:TrianglePointMarker.Fill>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:Header FontFamily="Arial" Content="{Binding Path=Title}"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Price"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="Date" />
</d3:ChartPlotter>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for MovingAverageView.xaml
/// </summary>
public partial class MovingAverageView : UserControl
{
public MovingAverageView()
{
InitializeComponent();
}
}
}

View File

@@ -1,188 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.OptionsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="600">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading...">
<Grid>
<AdornerDecorator>
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<GroupBox BorderBrush="Black" Grid.Row="0" Grid.Column="0" Header="Parameters">
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Content="Symbol" HorizontalAlignment="Left"></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Option Type" HorizontalAlignment="Left" Target="{Binding ElementName=optionTypeLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=OptionTypes, Mode=OneWay}" SelectedItem="{Binding Path=SelectedOptionType, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Expiration" HorizontalAlignment="Left" Target="{Binding ElementName=expirationLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=ExpirationDates, Mode=OneWay}" DisplayMemberPath="Value" SelectedItem="{Binding Path=SelectedExpirationDate}" ></ComboBox>
<Button Margin="0,4" Content="Update" HorizontalAlignment="Left" Command="{Binding Path=UpdateCommand}" Height="21" Width="76"></Button>
<CheckBox Margin="0,4" Content="Full History" HorizontalAlignment="Left" IsEnabled="{Binding Path=CheckBoxFullHistoryEnabled, Mode=OneWay}" IsChecked="{Binding Path=CheckBoxFullHistory, Mode=TwoWay}" Height="21" Width="76"></CheckBox>
<CheckBox Margin="0,4" Content="Call/Put Ratio" HorizontalAlignment="Left" IsEnabled="{Binding Path=CheckBoxCallPutRatioEnabled, Mode=OneWay}" IsChecked="{Binding Path=CheckBoxCallPutRatio, Mode=TwoWay}" Height="21"></CheckBox>
</StackPanel>
</GroupBox>
<GroupBox BorderBrush="Black" Grid.Row="1" Header="Assumptions">
<StackPanel Grid.Row="1" Grid.Column="0">
<Label Content="Risk Free Rate" HorizontalAlignment="Left" Target="{Binding ElementName=riskFreeRateLbl}" ></Label>
<TextBox IsReadOnly="true" Text="{Binding Path=SelectedRiskFreeRate, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Content="Rate Type" HorizontalAlignment="Left" Target="{Binding ElementName=riskFreeRateTypeLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=RiskFreeRateTypes, Mode=OneWay}" SelectedItem="{Binding Path=SelectedRiskFreeRateType,Mode=TwoWay}" ></ComboBox>
<Label Content="Rate Date" HorizontalAlignment="Left" Target="{Binding ElementName=riskFreeRateDateLbl}" ></Label>
<TextBox IsReadOnly="true" Text="{Binding Path=SelectedRiskFreeRateDate, Mode=OneWay, StringFormat={}{0:MM/dd/yyyy}}" ></TextBox>
<Label Content="Underlying Price" HorizontalAlignment="Left" Target="{Binding ElementName=underlyingPriceLbl}" ></Label>
<TextBox IsReadOnly="true" Text="{Binding Path=UnderlyingPrice, Mode=OneWay}" ></TextBox>
<Label Content="Pricing Date" HorizontalAlignment="Left" Target="{Binding ElementName=pricingDateLbl}" ></Label>
<TextBox IsReadOnly="true" Text="{Binding Path=PricingDate, Mode=OneWay}" ></TextBox>
<Label Content="Volatility" HorizontalAlignment="Left" ></Label>
<TextBox IsReadOnly="true" Text="{Binding Path=Volatility, Mode=OneWay}" ></TextBox>
<Label Content="Volatility Days" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=VolatilityDays, Mode=OneWay}" SelectedItem="{Binding Path=SelectedVolatilityDays,Mode=TwoWay}" ></ComboBox>
<CheckBox Content="Least Squares Fit" IsChecked="{Binding Mode=TwoWay,Path=LeastSquaresFit}" Grid.ColumnSpan="3" Grid.Row="7" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
</StackPanel>
</GroupBox>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".12*" />
<RowDefinition Height=".80*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<DockPanel Grid.Row="1" Grid.Column="2" >
<telerik:RadGridView CanUserSelect="True" SelectionMode="Single" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="False" ItemsSource="{Binding Path=AllOptions, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Symbol" IsReadOnly="true" DataMemberBinding="{Binding Path=Symbol}" />
<telerik:GridViewDataColumn Header="Expiration Date" IsReadOnly="true" DataMemberBinding="{Binding Path=Expiration,StringFormat={}{0:MM/dd/yyyy}}" />
<telerik:GridViewDataColumn Header="Days" IsReadOnly="true" DataMemberBinding="{Binding Path=DaysToExpiration}" />
<telerik:GridViewDataColumn Header="Option Type" IsReadOnly="true" DataMemberBinding="{Binding Path=Type}" />
<telerik:GridViewDataColumn Header="Strike Price" IsReadOnly="true" DataMemberBinding="{Binding Path=Strike,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Ratio" IsReadOnly="true" DataMemberBinding="{Binding Path=Ratio,StringFormat={}{0:0.00}}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:OptionsView}},Path=DataContext.RatioDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Volume" IsReadOnly="true" DataMemberBinding="{Binding Path=Volume}" />
<telerik:GridViewDataColumn Header="Open Interest" IsReadOnly="true" DataMemberBinding="{Binding Path=OpenInterest}" />
<telerik:GridViewDataColumn Header="Bid" IsReadOnly="true" DataMemberBinding="{Binding Path=Bid,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Ask" IsReadOnly="true" DataMemberBinding="{Binding Path=Ask,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Option Value" IsReadOnly="true" DataMemberBinding="{Binding Path=OptionValue,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Money" IsReadOnly="true" DataMemberBinding="{Binding ElementName=Money, Path=MoneyTypeAsString}" />
<telerik:GridViewDataColumn Header="Modified" IsReadOnly="true" DataMemberBinding="{Binding Path=Modified,StringFormat={}{0:MM/dd/yyyy}}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
<DockPanel Grid.Row="2" Grid.Column="2">
<d3:ChartPlotter Background="WhiteSmoke" Grid.Row="0" Margin="10,16,20,4" Name="bollinger" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis Name="countAxis" MinWidth="40" MaxWidth="40"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:Viewport2D.UsesApproximateContentBoundsComparison="True" x:Name="K" DataSource="{Binding Path=K}" Stroke="Green" StrokeThickness="3" />
<d3:LineGraph x:Name="L" DataSource="{Binding Path=L}" Stroke="Green" StrokeThickness="3"/>
<d3:LineGraph x:Name="KL1" DataSource="{Binding Path=KL1}" Stroke="Green"/>
<d3:LineGraph x:Name="LP1" DataSource="{Binding Path=LP1}" Stroke="Green"/>
<d3:LineGraph x:Name="High" DataSource="{Binding Path=High}" Stroke="Blue" StrokeThickness="2"/>
<d3:LineGraph x:Name="Low" DataSource="{Binding Path=Low}" Stroke="Red" StrokeThickness="2"/>
<d3:LineGraph x:Name="Close" DataSource="{Binding Path=Close}" Stroke="Black" StrokeThickness="2"/>
<d3:LineGraph x:Name="SMAN" DataSource="{Binding Path=SMAN}" Stroke="Purple" StrokeThickness="2"/>
<d3:LineGraph x:Name="LeastSquares" d3:NewLegend.Description="LeastSquares" DataSource="{Binding LeastSquares}" Stroke="Orange" StrokeThickness="2"/>
<d3:CursorCoordinateGraph Name="cursorGraph" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:MarkerPointsGraph x:Name="StrikeMarkerPointsGraph" DataSource="{Binding Path=OptionStrikePoints}" >
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Thickness="1">
<Pen.Brush >
<SolidColorBrush Color="Black">
</SolidColorBrush>
</Pen.Brush>
</Pen>
</d3:TrianglePointMarker.Pen>
<d3:TrianglePointMarker.Fill>
<SolidColorBrush Color="Yellow">
</SolidColorBrush>
</d3:TrianglePointMarker.Fill>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkerPointsGraph x:Name="SelectedStrikeMarkerPointsGraph" DataSource="{Binding Path=SelectedOptionStrikePoints}" >
<d3:MarkerPointsGraph.Marker>
<d3:TrianglePointMarker Size="9">
<d3:TrianglePointMarker.Pen>
<Pen Thickness="1">
<Pen.Brush >
<SolidColorBrush Color="Black">
</SolidColorBrush>
</Pen.Brush>
</Pen>
</d3:TrianglePointMarker.Pen>
<d3:TrianglePointMarker.Fill>
<SolidColorBrush Color="Red">
</SolidColorBrush>
</d3:TrianglePointMarker.Fill>
</d3:TrianglePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Price"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</DockPanel>
</Grid>
</DockPanel>
</Grid>
</AdornerDecorator>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for OptionsView.xaml
/// </summary>
public partial class OptionsView : UserControl
{
public OptionsView()
{
InitializeComponent();
}
}
}

View File

@@ -1,222 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.OptionsWorksheetView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="600">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading options worksheet...">
<Grid Background="LightGray">
<Grid.Resources>
<dc:EquityPriceShockPositionGLStyle x:Key="EquityPriceShockPositionGLStyle">
<dc:EquityPriceShockPositionGLStyle.NegativeStyle>
<Style TargetType="telerik:GridViewCell">
<Setter Property="Foreground" Value="Red"/>
</Style>
</dc:EquityPriceShockPositionGLStyle.NegativeStyle>
<dc:EquityPriceShockPositionGLStyle.PositiveStyle>
<Style TargetType="telerik:GridViewCell">
<Setter Property="Foreground" Value="Green" />
</Style>
</dc:EquityPriceShockPositionGLStyle.PositiveStyle>
</dc:EquityPriceShockPositionGLStyle>
<dc:EquityPriceShockTransactionGLStyle x:Key="EquityPriceShockTransactionGLStyle">
<dc:EquityPriceShockTransactionGLStyle.NegativeStyle>
<Style TargetType="telerik:GridViewCell">
<Setter Property="Foreground" Value="Red"/>
</Style>
</dc:EquityPriceShockTransactionGLStyle.NegativeStyle>
<dc:EquityPriceShockTransactionGLStyle.PositiveStyle>
<Style TargetType="telerik:GridViewCell">
<Setter Property="Foreground" Value="Green" />
</Style>
</dc:EquityPriceShockTransactionGLStyle.PositiveStyle>
</dc:EquityPriceShockTransactionGLStyle>
</Grid.Resources>
<AdornerDecorator>
<Grid>
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".12*" />
<RowDefinition Height=".8*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width=".01*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<DockPanel Grid.Row="1" Grid.Column="0" >
</DockPanel>
<GroupBox BorderBrush="Black" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="1" Header="Options Worksheet" Grid.RowSpan="2" FontSize="11" >
<StackPanel Grid.Row="0" Grid.Column="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".7*" />
<RowDefinition Height=".7*" />
<RowDefinition Height=".7*" />
<RowDefinition Height=".7*" />
<RowDefinition Height=".7*" />
<RowDefinition Height=".7*" />
<RowDefinition Height=".7*" />
<RowDefinition Height=".7*" />
<RowDefinition Height="7" />
<RowDefinition Height=".7*" />
<RowDefinition Height="7" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="62*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="56*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" FontSize="10" Content="Investment" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="The initial investment." Grid.Row="1" Grid.Column="0" FontSize="10" IsReadOnly="true" Text="{Binding Path=Investment, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="0" Grid.Column="2" FontSize="10" Content="Bid" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="The bid price of the option." Grid.Row="1" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=Bid, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="0" Grid.Column="4" FontSize="10" Content="Strike" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="The strike price of the option." Grid.Row="1" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=Strike, Mode=OneWay}" ></TextBox>
<Label Grid.Row="0" Grid.Column="6" FontSize="10" Content="Expiration Date" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="The expiration date of the option." Grid.Row="1" Grid.Column="6" FontSize="10" IsReadOnly="true" Background="{Binding Path=ExpirationDateBackground}" Text="{Binding Path=ExpirationDate, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="0" FontSize="10" Content="Shares" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="The number of shares purchased with initial investment." Grid.Row="3" Grid.Column="0" FontSize="10" IsReadOnly="true" Text="{Binding Path=Shares, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="2" FontSize="10" Content="Contracts" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Number of contracts purchaseable with investment" Grid.Row="3" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=Contracts, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="4" Grid.Column="0" FontSize="10" Content="Open Interest" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Open Interest" Grid.Row="5" Grid.Column="0" FontSize="10" IsReadOnly="true" Text="{Binding Path=OpenInterest, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="4" Grid.Column="2" FontSize="10" Content="Premium" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="The premium received for the option." Grid.Row="5" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=Premium, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="4" FontSize="10" Content="Underlier Price" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Price when record created" Grid.Row="3" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=UnderlierPrice, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="2" Grid.Column="6" FontSize="10" Content="Underlier Price Date" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Pricing date when record was created" Grid.Row="3" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=UnderlierPriceDate, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="4" Grid.Column="4" FontSize="10" Content="Current Price" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Latest market price in database" Grid.Row="5" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=CurrentPrice, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="4" Grid.Column="6" FontSize="10" Content="Current Price Date" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Latest market price date in database" Grid.Row="5" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=CurrentPriceDate, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="6" Grid.Column="0" FontSize="10" Content="Volatility" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Volatility of stock." Grid.Row="7" Grid.Column="0" FontSize="10" IsReadOnly="true" Text="{Binding Path=Volatility, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="6" Grid.Column="2" FontSize="10" Content="Volatility Days" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Number of days in volatility." Grid.Row="7" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=VolatilityDays, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="6" Grid.Column="4" FontSize="10" Content="Loss Point" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Price at which transaction is losing money." Grid.Row="7" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=LossPoint, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="6" Grid.Column="6" FontSize="10" Content="Transaction G/L" HorizontalAlignment="Left"></Label>
<TextBox ToolTipService.ToolTip="Current Gain/Loss." Grid.Row="7" Grid.Column="6" FontSize="10" IsReadOnly="true" Background="{Binding Path=TransactionGLBackground}" Text="{Binding Path=TransactionGL, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<CheckBox Grid.Row="9" Content="Realtime Price" IsChecked="{Binding Path=UseRealPrice}" Margin="0,1" ></CheckBox>
<DockPanel Grid.Row="0" Grid.Column="8" Grid.ColumnSpan="4" Grid.RowSpan="8">
<d3:ChartPlotter Background="WhiteSmoke" Margin="10,10,20,10" x:Name="prices" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="2">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis x:Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis x:Name="countAxis" MinWidth="40" MaxWidth="40"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph x:Name="Close" DataSource="{Binding Close}" Stroke="Blue" StrokeThickness="1"/>
<d3:CursorCoordinateGraph x:Name="cursorGraph" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph/>-->
<!--<d3:Header FontFamily="Arial" Content="{Binding Path=Title}"/>-->
<d3:VerticalAxisTitle FontFamily="Arial" Content="Price"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
</d3:ChartPlotter>
</DockPanel>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="5" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="93*"/>
<ColumnDefinition Width="191*"/>
</Grid.ColumnDefinitions>
<telerik:RadGridView Grid.Row="1" CanUserSelect="True" FontSize="10" SelectionMode="Single" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupPanel="false" ShowGroupFooters="False" ItemsSource="{Binding Path=EquityPriceShocks, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" Grid.ColumnSpan="2" Margin="0,0,0,15" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Equity Price Shocks" IsReadOnly="true" DataMemberBinding="{Binding Path=PriceShock}" />
<telerik:GridViewDataColumn Header="Market Price" IsReadOnly="true" DataMemberBinding="{Binding Path=MarketPrice,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Strike Price" IsReadOnly="true" DataMemberBinding="{Binding Path=StrikePrice,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Premium" IsReadOnly="true" DataMemberBinding="{Binding Path=Premium,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Position G/L" CellStyleSelector="{StaticResource EquityPriceShockPositionGLStyle}" IsReadOnly="true" DataMemberBinding="{Binding Path=PositionGL,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Transaction G/L" CellStyleSelector="{StaticResource EquityPriceShockTransactionGLStyle}" IsReadOnly="true" DataMemberBinding="{Binding Path=TransactionGL,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Expected Outcome" IsReadOnly="true" DataMemberBinding="{Binding Path=ExpectedOutcome,StringFormat={}{0:C}}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
</StackPanel>
</GroupBox>
</Grid>
</DockPanel>
</Grid>
</AdornerDecorator>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for OptionsWorksheetView.xaml
/// </summary>
public partial class OptionsWorksheetView : UserControl
{
public OptionsWorksheetView()
{
InitializeComponent();
}
}
}

View File

@@ -1,151 +0,0 @@
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:Effects="clr-namespace:Telerik.Windows.Controls.ColorEditor.Effects;assembly=Telerik.Windows.Controls.Input" x:Class="TradeBlotter.Views.PricingView"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<GroupStyle x:Key="PricingGroupStyle">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock
x:Name="txt"
Background="{StaticResource Brush_HeaderBackground}"
FontWeight="Bold"
Foreground="White"
Margin="1"
Padding="4,2,0,2"
Text="People"
/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Name}" Value="True">
<Setter TargetName="txt" Property="Text" Value="Companies" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
<Style x:Key="ValuationItemStyle" TargetType="{x:Type ListViewItem}">
<!--
Stretch the content of each cell so that we can
right-align text in the Total Sales column.
-->
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<!--
Bind the IsSelected property of a ListViewItem to the
IsSelected property of a PricingViewModel object.
-->
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ItemsControl.AlternationIndex" Value="1" />
<Condition Property="IsSelected" Value="False" />
<Condition Property="IsMouseOver" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#EEEEEEEE" />
</MultiTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator x:Name="BusyBar" BusyContent="Loading Prices..." IsBusy="{Binding BusyIndicator}">
<Grid Background="LightGray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="4" />
<RowDefinition Height="2*" />
<RowDefinition Height="3" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Title}" HorizontalAlignment="Center" FontSize="20"/>
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Vertical">
<Label Margin="2,0" Content="Watch List" HorizontalAlignment="Left" />
<ComboBox Margin="2,1" ItemsSource="{Binding WatchListNames, Mode=OneTime}" SelectedItem="{Binding SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" />
<!--<Label Margin="2,0" Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" />-->
<Label Margin="2,0" Content="Symbol" HorizontalAlignment="Left" />
<ComboBox Margin="2,1" ItemsSource="{Binding Symbols, Mode=OneWay}" SelectedItem="{Binding SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Margin="2,0" Content="Day Count" HorizontalAlignment="Left" />
<ComboBox Margin="2,1" ItemsSource="{Binding DayCounts, Mode=OneWay}" SelectedItem="{Binding SelectedDayCount, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" />
<Button Margin="2,1" Content="Refresh" HorizontalAlignment="Left" Command="{Binding RefreshCommand}"/>
<Button Margin="2,1" Content="Export" HorizontalAlignment="Left" Command="{Binding SaveCommand}"/>
<CheckBox Content="Show Ratings" IsChecked="{Binding ShowRatings}" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
<CheckBox Content="Least Squares Fit" IsChecked="{Binding CheckBoxLeastSquaresFit}" Height="16" HorizontalAlignment="Left" Margin="5,6,0,0" VerticalAlignment="Top" />
</StackPanel>
<DockPanel Grid.Row="4" Grid.Column="2" >
<telerik:RadGridView AlternationCount="2" AutoGenerateColumns="False" AlternateRowBackground="Bisque" dc:GridExportGraphBehavior.ExportExcelProperty="{Binding SaveDocument}" ItemsSource="{Binding AllPrices, ValidatesOnDataErrors=True}" ShowGroupFooters="False" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Date, StringFormat=\{0:MM/dd/yyyy\}}" Header="Date"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding CompanyName}" Header="Company"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Symbol}" Header="Symbol"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Open, StringFormat=\{0:C\}}" Header="Open"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding High, StringFormat=\{0:C\}}" Header="High"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Low, StringFormat=\{0:C\}}" Header="Low"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Close, StringFormat=\{0:C\}}" Header="Close"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Volume, StringFormat=\{0:#\,###0\}}" Header="Volume"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding AdjClose, StringFormat=\{0:C\}}" Header="AdjClose"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Return1D, StringFormat=\{0:P\}}" Header="Return1D"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Return5D, StringFormat=\{0:P\}}" Header="Return5D"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Return10D, StringFormat=\{0:P\}}" Header="Return10D"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Return15D, StringFormat=\{0:P\}}" Header="Return15D"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Return30D, StringFormat=\{0:P\}}" Header="Return30D"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Return60D, StringFormat=\{0:P\}}" Header="Return60D"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Return200D, StringFormat=\{0:P\}}" Header="Return200D"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
<DockPanel Grid.Row="2" Grid.Column="2" >
<d3:ChartPlotter Background="WhiteSmoke" Margin="10,10,20,10" x:Name="prices" LegendVisibility="Hidden" NewLegendVisible="False" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis x:Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis x:Name="countAxis" MinWidth="40" MaxWidth="40"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph x:Name="Close" DataSource="{Binding Close}" Stroke="Black" StrokeThickness="1"/>
<d3:LineGraph x:Name="LeastSquaresFit" DataSource="{Binding LeastSquares}" Stroke="Orange" StrokeThickness="1"/>
<d3:CursorCoordinateGraph x:Name="cursorGraph" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph/>-->
<!--<d3:Header FontFamily="Arial" Content="{Binding Path=Title}"/>-->
<d3:VerticalAxisTitle FontFamily="Arial" Content="Price"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="" />
<d3:MarkerPointsGraph x:Name="MarkerPointsGraph" DataSource="{Binding RatingsPoints}">
<d3:MarkerPointsGraph.Marker>
<d3:CirclePointMarker Size="9" Fill="Red">
<d3:CirclePointMarker.Pen>
<Pen Thickness="1" Brush="Black"/>
</d3:CirclePointMarker.Pen>
</d3:CirclePointMarker>
</d3:MarkerPointsGraph.Marker>
</d3:MarkerPointsGraph>
<d3:MarkersPointsGraph x:Name="AnalystRatingsMarkersPointsGraph" DataSource="{Binding RatingsPoints}" Markers="{Binding Markers}" >
</d3:MarkersPointsGraph>
</d3:ChartPlotter>
</DockPanel>
<GridSplitter Background="LightBlue" ResizeDirection="Rows" Grid.Column="2" Grid.ColumnSpan="1" Grid.Row="3" Width="Auto" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"/>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for PricingView.xaml
/// </summary>
public partial class PricingView : UserControl
{
public PricingView()
{
InitializeComponent();
}
}
}

View File

@@ -1,67 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.ResistanceAndSupportView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Content="Symbol" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Day Count" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=DayCounts, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDayCount, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<CheckBox Margin="0,2" Content="Legend Visible" HorizontalAlignment="Left" IsChecked="{Binding Path=CheckBoxLegendVisible, Mode=TwoWay}"></CheckBox>
</StackPanel>
</Grid>
<d3:ChartPlotter Background="WhiteSmoke" Name="resistanceandsupport" Margin="10,10,20,10" LegendVisibility="Hidden" dc:ChartPlotterLegendBehavior.LegendVisibleProperty="{Binding Path=LegendVisible}" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis Name="countAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:NewLegend.Description="R1" x:Name="R1" DataSource="{Binding Path=R1}" Stroke="Green" StrokeThickness="3"/>
<d3:LineGraph d3:NewLegend.Description="S1" x:Name="S1" DataSource="{Binding Path=S1}" Stroke="Green" StrokeThickness="3"/>
<d3:LineGraph d3:NewLegend.Description="R2" x:Name="R2" DataSource="{Binding Path=R2}" Stroke="Green" StrokeThickness="4"/>
<d3:LineGraph d3:NewLegend.Description="S2" x:Name="S2" DataSource="{Binding Path=S2}" Stroke="Green" StrokeThickness="4"/>
<d3:LineGraph d3:NewLegend.Description="High" x:Name="High" DataSource="{Binding Path=High}" Stroke="Blue" StrokeThickness="1"/>
<d3:LineGraph d3:NewLegend.Description="Low" x:Name="Low" DataSource="{Binding Path=Low}" Stroke="Red" StrokeThickness="1"/>
<d3:LineGraph d3:NewLegend.Description="Close" x:Name="Close" DataSource="{Binding Path=Close}" Stroke="Black" StrokeThickness="1"/>
<d3:CursorCoordinateGraph Name="cursorGraph" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=Title}"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Price"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="Date" />
</d3:ChartPlotter>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for ResistanceAndSupportView.xaml
/// </summary>
public partial class ResistanceAndSupportView : UserControl
{
public ResistanceAndSupportView()
{
InitializeComponent();
}
}
}

View File

@@ -1,53 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.SECFilingView"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="110" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=symbolLbl}" ></Label>
<ComboBox x:Name="symbolCmb" ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Description" HorizontalAlignment="Left" Target="{Binding ElementName=descriptionLbl}" ></Label>
<ComboBox x:Name="formsCmb" ItemsSource="{Binding Path=FormNames, Mode=OneWay}" DisplayMemberPath="Value" SelectedIndex="{Binding Path=SelectedFormIndex,Mode=TwoWay}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
</StackPanel>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="2" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Content="{Binding Path=Title, Mode=OneWay}" HorizontalAlignment="Center" Target="{Binding ElementName=titleLbl}" FontSize="16" FontWeight="Bold" BorderThickness="1"></Label>
<WebBrowser Grid.Row="3" dc:BrowserBehavior.Html="{Binding Path=Document}"/>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for SECFilingView.xaml
/// </summary>
public partial class SECFilingView : UserControl
{
public SECFilingView()
{
InitializeComponent();
}
}
}

View File

@@ -1,96 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.SectorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Generating Sector Breakdown...">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<GroupBox Header="Selection" >
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Account" HorizontalAlignment="Left" Target="{Binding ElementName=accountListLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Accounts, Mode=OneTime}" SelectedItem="{Binding Path=SelectedAccount, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Sector/Industry" HorizontalAlignment="Left" Target="{Binding ElementName=accountListLbl}" ></Label>
<ComboBox Margin="2,2" ItemsSource="{Binding Path=SectorIndustry, Mode=OneTime}" SelectedItem="{Binding Path=SelectedOperation, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<CheckBox Content="Include Cash" IsChecked="{Binding Path=IncludeCash}" Margin="0,1" ></CheckBox>
<CheckBox Content="Realtime Price" IsChecked="{Binding Path=UseRealPrice}" Margin="0,1" ></CheckBox>
<Button Margin="0,1" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
</StackPanel>
</GroupBox>
</Grid>
<Grid Grid.Row="0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Content="{Binding Path=TitleExposure, Mode=OneWay}" HorizontalAlignment="Center" Target="{Binding ElementName=titleLbl}" FontSize="16" FontWeight="Bold" BorderThickness="1"></Label>
<telerik:RadPieChart DockPanel.Dock="Left" x:Name="PieChartExposure" Palette="Metro" Grid.Row="0" Margin="20,40">
<telerik:RadPieChart.SmartLabelsStrategy>
<telerik:PieChartSmartLabelsStrategy/>
</telerik:RadPieChart.SmartLabelsStrategy>
<telerik:PieSeries ItemsSource="{Binding Path=PieDataExposure}" ShowLabels="True" RadiusFactor=".80" >
<telerik:PieSeries.LabelConnectorsSettings>
<telerik:ChartSeriesLabelConnectorsSettings />
</telerik:PieSeries.LabelConnectorsSettings>
<telerik:PieSeries.ValueBinding>
<telerik:PropertyNameDataPointBinding PropertyName="Value"></telerik:PropertyNameDataPointBinding>
</telerik:PieSeries.ValueBinding>
<telerik:PieSeries.LabelDefinitions>
<telerik:ChartSeriesLabelDefinition Margin="-7">
<telerik:ChartSeriesLabelDefinition.Binding>
<telerik:PropertyNameDataPointBinding PropertyName="Label"></telerik:PropertyNameDataPointBinding>
</telerik:ChartSeriesLabelDefinition.Binding>
</telerik:ChartSeriesLabelDefinition>
</telerik:PieSeries.LabelDefinitions>
<telerik:PieSeries.AngleRange>
<telerik:AngleRange StartAngle="0" SweepAngle="360" SweepDirection="Clockwise"/>
</telerik:PieSeries.AngleRange>
</telerik:PieSeries>
</telerik:RadPieChart>
<Label Grid.Row="1" Content="{Binding Path=TitleContribution, Mode=OneWay}" HorizontalAlignment="Center" Target="{Binding ElementName=titleLbl}" FontSize="16" FontWeight="Bold" BorderThickness="1"></Label>
<telerik:RadPieChart DockPanel.Dock="Left" x:Name="PieChartContribution" Palette="Metro" Grid.Row="1" Margin="20,40">
<telerik:RadPieChart.SmartLabelsStrategy>
<telerik:PieChartSmartLabelsStrategy/>
</telerik:RadPieChart.SmartLabelsStrategy>
<telerik:PieSeries ItemsSource="{Binding Path=PieDataContribution}" ShowLabels="True" RadiusFactor=".80" >
<telerik:PieSeries.LabelConnectorsSettings>
<telerik:ChartSeriesLabelConnectorsSettings />
</telerik:PieSeries.LabelConnectorsSettings>
<telerik:PieSeries.ValueBinding>
<telerik:PropertyNameDataPointBinding PropertyName="Value"></telerik:PropertyNameDataPointBinding>
</telerik:PieSeries.ValueBinding>
<telerik:PieSeries.LabelDefinitions>
<telerik:ChartSeriesLabelDefinition Margin="-10">
<telerik:ChartSeriesLabelDefinition.Binding>
<telerik:PropertyNameDataPointBinding PropertyName="Label"></telerik:PropertyNameDataPointBinding>
</telerik:ChartSeriesLabelDefinition.Binding>
</telerik:ChartSeriesLabelDefinition>
</telerik:PieSeries.LabelDefinitions>
<telerik:PieSeries.AngleRange>
<telerik:AngleRange StartAngle="0" SweepAngle="360" SweepDirection="Clockwise"/>
</telerik:PieSeries.AngleRange>
</telerik:PieSeries>
</telerik:RadPieChart>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for SectorView.xaml
/// </summary>
public partial class SectorView : UserControl
{
public SectorView()
{
InitializeComponent();
}
}
}

View File

@@ -1,186 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.StickerPriceView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="600">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading...">
<Grid Background="LightGray">
<AdornerDecorator>
<Grid>
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<GroupBox BorderBrush="Black" Grid.Row="0" Grid.Column="0" Header="Parameters">
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Symbol" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Button Margin="0,2,0,2" Width="100" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<Button Margin="0,2,0,2" Content="Copy to Clipboard" HorizontalAlignment="Left" Command="{Binding Path=CopyToClipboardCommand}"></Button>
</StackPanel>
</GroupBox>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".12*" />
<RowDefinition Height=".8*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width=".01*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<GridSplitter Background="LightBlue" ResizeDirection="Columns" Grid.Column="1" Grid.RowSpan="3" Grid.Row="0" Width="5" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"/>
<Label Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<DockPanel Grid.Row="1" Grid.Column="0" >
<telerik:RadGridView CanUserSelect="True" FontSize="10" SelectionMode="Single" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupPanel="false" ShowGroupFooters="False" ItemsSource="{Binding Path=AllBVPS, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Dates" IsReadOnly="true" DataMemberBinding="{Binding Path=Date,StringFormat={}{0:MM/dd/yyyy}}" />
<telerik:GridViewDataColumn Header="BVPS" IsReadOnly="true" DataMemberBinding="{Binding Path=Value,StringFormat={}{0:C}}" />
<telerik:GridViewDataColumn Header="Return" IsReadOnly="true" DataMemberBinding="{Binding Path=Return,StringFormat={}{0:P}}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
<GroupBox BorderBrush="Black" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" Header="Assumptions" FontSize="11" >
<StackPanel Grid.Row="0" Grid.Column="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".25*" />
<RowDefinition Height=".25*" />
<RowDefinition Height=".25*" />
<RowDefinition Height=".25*" />
<RowDefinition Height=".25*" />
<RowDefinition Height=".25*" />
<RowDefinition Height=".25*" />
<RowDefinition Height=".25*" />
<RowDefinition Height=".25*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="62*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="56*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
<ColumnDefinition Width="52*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" FontSize="10" Content="Required Return" HorizontalAlignment="Left" Target="{Binding ElementName=requiredReturnLbl}" ></Label>
<TextBox ToolTipService.ToolTip="The return required over 10-year horizon." Grid.Row="1" Grid.Column="0" FontSize="10" HorizontalAlignment="Left" Width="55" IsReadOnly="true" Text="{Binding Path=RequiredReturn, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="0" Grid.Column="2" FontSize="10" Content="EPS" HorizontalAlignment="Left" Target="{Binding ElementName=epsLbl}" ></Label>
<TextBox ToolTipService.ToolTip="Earnings per share." Grid.Row="1" Grid.Column="2" FontSize="10" HorizontalAlignment="Left" Width="55" IsReadOnly="false" Text="{Binding Path=EPS, Mode=TwoWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="0" Grid.Column="4" FontSize="10" Content="P/E" HorizontalAlignment="Left" Target="{Binding ElementName=lowPELbl}" ></Label>
<TextBox ToolTipService.ToolTip="Price-to-earnings ratio." Grid.Row="1" Grid.Column="4" FontSize="10" IsReadOnly="false" Background="{Binding Path=PEBackground}" Text="{Binding Path=PE, Mode=TwoWay}" ></TextBox>
<Label Grid.Row="0" Grid.Column="6" FontSize="10" Content="Low P/E" HorizontalAlignment="Left" Target="{Binding ElementName=lowPELbl}" ></Label>
<TextBox ToolTipService.ToolTip="EPS*2.00." Grid.Row="1" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=LowPE, Mode=OneWay}" ></TextBox>
<Label Grid.Row="0" Grid.Column="8" FontSize="10" Content="Trailing P/E" HorizontalAlignment="Left" Target="{Binding ElementName=trailingPELbl}" ></Label>
<TextBox ToolTipService.ToolTip="12-month trailing P/E (Fundamental)." Grid.Row="1" Grid.Column="8" FontSize="10" IsReadOnly="true" Text="{Binding Path=TrailingPE, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="0" FontSize="10" Content="Average Low/Trailing" HorizontalAlignment="Left" Target="{Binding ElementName=avgLowTrailingLbl}" ></Label>
<TextBox ToolTipService.ToolTip="(LowP/E+TrailingP/E)/2.00" Grid.Row="3" Grid.Column="0" FontSize="10" HorizontalAlignment="Left" Width="55" IsReadOnly="true" Text="{Binding Path=AvgLowTrailing, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" Validation.ErrorTemplate="{x:Null}"/>
<Label Grid.Row="2" Grid.Column="2" FontSize="10" Content="Current Est. Price" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="EPS*Average Low/Trailing." Grid.Row="3" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=CurrentEstimatedPrice, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="4" FontSize="10" Content="Price Est. 10y" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Current Est. Price *((1.00+BVPSGrowth)^10.00)." Grid.Row="3" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=PriceEstimate10Y, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="6" FontSize="10" Content="Price Reqd. Return" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Price Est. 10-year/(1.00+Required Return)^10.00" Grid.Row="3" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=TodaysPriceForRequiredReturn, Mode=OneWay}" ></TextBox>
<Label Grid.Row="2" Grid.Column="8" FontSize="10" Content="P/CF" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Price to Operating Cashflow: Price/(Operating Cashflow/Shares Outstanding)" Grid.Row="3" Grid.Column="8" FontSize="10" IsReadOnly="true" Text="{Binding Path=PCF, Mode=OneWay}" ></TextBox>
<Label Grid.Row="4" Grid.Column="0" FontSize="10" Content="Latest Price" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Latest closing price." Grid.Row="5" Grid.Column="0" FontSize="10" AcceptsReturn="True" IsReadOnly="false" Text="{Binding Path=LatestPrice, Mode=TwoWay}" Height="15" VerticalAlignment="Bottom" ></TextBox>
<Label Grid.Row="4" Grid.Column="2" FontSize="10" Content="Pricing Date" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Date of latest closing price." Grid.Row="5" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=PricingDate, Mode=OneWay}" ></TextBox>
<Label Grid.Row="4" Grid.Column="4" FontSize="10" Content="MOS" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Todays price for required return * .50." Grid.Row="5" Grid.Column="4" Background="{Binding Path=MOSBackground}" FontSize="10" IsReadOnly="true" Text="{Binding Path=MOS, Mode=OneWay}" ></TextBox>
<Label Grid.Row="4" Grid.Column="6" FontSize="10" Content="MOS80" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Todays price for required return * .80." Grid.Row="5" Grid.Column="6" Background="{Binding Path=MOS80Background}" FontSize="10" IsReadOnly="true" Text="{Binding Path=MOS80, Mode=OneWay}" ></TextBox>
<Label Grid.Row="4" Grid.Column="8" FontSize="10" Content="NCAVPS" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Benjamin Graham : Net Current Asset Value Per Share = (Net Current Assets - Total Liabilities) / Shares Outstanding." Grid.Row="5" Grid.Column="8" Background="{Binding Path=NetCurrentAssetValuePerShareBackground}" FontSize="10" IsReadOnly="true" Text="{Binding Path=NetCurrentAssetValuePerShare, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="0" FontSize="10" Content="Intrinsic Value" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Benjamin Graham : EPS*(8.5+(2*EPSGrowth))" Grid.Row="7" Grid.Column="0" FontSize="10" IsReadOnly="true" Text="{Binding Path=IntrinsicValue, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="2" FontSize="10" Content="Fundamental Value" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Benjamin Graham : Sqrt(22.5 * eps(ttm) * bvps)." Grid.Row="7" Grid.Column="2" FontSize="10" IsReadOnly="true" Text="{Binding Path=FundamentalValue, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="4" FontSize="10" Content="RGV" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Intrinsic value / Last closing price." Grid.Row="7" Grid.Column="4" FontSize="10" IsReadOnly="true" Text="{Binding Path=RGV, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="6" FontSize="10" Content="BVPS" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Book value per share." Grid.Row="7" Grid.Column="6" FontSize="10" IsReadOnly="true" Text="{Binding Path=BVPS, Mode=OneWay}" ></TextBox>
<Label Grid.Row="6" Grid.Column="8" FontSize="10" Content="PBVPS" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Price to Book value per share." Grid.Row="7" Grid.Column="8" FontSize="10" IsReadOnly="true" Text="{Binding Path=PBVPS, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="0" FontSize="10" Content="Average Growth" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Mean BVPS returns." Grid.Row="9" Grid.Column="0" FontSize="10" AcceptsReturn="True" IsReadOnly="False" Text="{Binding Path=AverageGrowth, Mode=TwoWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="2" FontSize="10" Content="Dividend Yield" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Dividend Yield (Dividend History vs. Current Price)." Grid.Row="9" Grid.Column="2" FontSize="10" IsReadOnly="True" Text="{Binding Path=DividendYield, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="4" FontSize="10" Content="Shares Outstanding" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Shares Outstanding." Grid.Row="9" Grid.Column="4" FontSize="10" IsReadOnly="True" Text="{Binding Path=SharesOutstanding, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="6" FontSize="10" Content="PE x PBVPS" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="P/E x PBVPS. Should not exceed 22.5 Ref: The Intelligent Investor." Grid.Row="9" Grid.Column="6" FontSize="10" IsReadOnly="True" Background="{Binding Path=PExPBVPSBackground}" Text="{Binding Path=PExPBVPS, Mode=OneWay}" ></TextBox>
<Label Grid.Row="8" Grid.Column="8" FontSize="10" Content="Debt To Equity" HorizontalAlignment="Left" ></Label>
<TextBox ToolTipService.ToolTip="Fundamental.Debt/BalanceSheet.StockHoldersEquity." Grid.Row="9" Grid.Column="8" FontSize="10" IsReadOnly="True" Background="{Binding Path=DebtToEquityBackground}" Text="{Binding Path=DebtToEquity, Mode=OneWay}" ></TextBox>
</Grid>
</StackPanel>
</GroupBox>
</Grid>
</DockPanel>
</Grid>
</AdornerDecorator>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for StickerPriceView.xaml
/// </summary>
public partial class StickerPriceView : UserControl
{
public StickerPriceView()
{
InitializeComponent();
}
}
}

View File

@@ -1,62 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.StochasticsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Generating Stochastics...">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=tradeDateLbl}" ></Label>-->
<Label Content="Symbol" HorizontalAlignment="Left" ></Label>
<ComboBox x:Name="symbolCmb" ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Day Count" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=DayCounts, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDayCount, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<CheckBox Margin="0,2" Content="Legend Visible" HorizontalAlignment="Left" IsChecked="{Binding Path=CheckBoxLegendVisible, Mode=TwoWay}"></CheckBox>
</StackPanel>
</Grid>
<d3:ChartPlotter Background="WhiteSmoke" Name="stochastics" Margin="10,10,20,10" LegendVisibility="Hidden" dc:ChartPlotterLegendBehavior.LegendVisibleProperty="{Binding Path=LegendVisible}" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" >
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis Name="countAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:NewLegend.Description="%K" x:Name="PcntK" DataSource="{Binding Path=PcntK}" Stroke="Green" StrokeThickness="2" />
<d3:LineGraph d3:NewLegend.Description="%D(Signal)" x:Name="PcntD" DataSource="{Binding Path=PcntD}" Stroke="Red" StrokeThickness="2" />
<d3:Header FontFamily="Arial" Content="{Binding Path=Title}"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Percent"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="Date" />
<d3:CursorCoordinateGraph Name="cursorGraph" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
</d3:ChartPlotter>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,32 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for StochasticsView.xaml
/// </summary>
public partial class StochasticsView : UserControl
{
public StochasticsView()
{
InitializeComponent();
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
}
}
}

View File

@@ -1,210 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.TradeEntryView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="419"
mc:Ignorable="d"
d:DesignHeight="381" d:DesignWidth="300">
<Grid Margin="4" Background="LightGray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- TradeId -->
<Label
Grid.Row="0" Grid.Column="0"
Content="TradeId:"
HorizontalAlignment="Right"
Target="{Binding ElementName=tradeIdTxt}"
/>
<TextBox
x:Name="tradeIdTxt"
Grid.Row="0" Grid.Column="2"
Text="{Binding Path=TradeId, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="False" IsReadOnly="True" />
<!-- Trade Date-->
<Label
Grid.Row="1" Grid.Column="0"
Content="Trade Date:"
HorizontalAlignment="Right"
Target="{Binding ElementName=tradeDateLbl}"
/>
<DatePicker
Grid.Row="1" Grid.Column="2"
HorizontalAlignment="Left" Name="tradeDatePck"
SelectedDate="{Binding Path=TradeDate, ValidatesOnDataErrors=True}"
/>
<!-- Trade Type -->
<Label
Grid.Row="2" Grid.Column="0"
Content="Buy/Sell:"
HorizontalAlignment="Right"
Target="{Binding ElementName=tradeTypeCmb}"
/>
<ComboBox
x:Name="tradeTypeCmb"
Grid.Row="2" Grid.Column="2"
ItemsSource="{Binding Path=TradeTypeOptions, Mode=OneTime}"
SelectedItem="{Binding Path=SelectedTradeType, ValidatesOnDataErrors=True}"
Validation.ErrorTemplate="{x:Null}"
/>
<!-- TradeStatus -->
<Label
Grid.Row="3" Grid.Column="0"
Content="Status:"
HorizontalAlignment="Right"
Target="{Binding ElementName=tradeStatusCmb}"
/>
<TextBox
x:Name="tradeStatus"
Grid.Row="3" Grid.Column="2"
Text="{Binding Path=SelectedStatus, Mode=OneWay,ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="False" IsReadOnly="True" />
<!--<ComboBox
x:Name="tradeStatusCmb"
Grid.Row="3" Grid.Column="2"
ItemsSource="{Binding Path=TradeStatusOptions, Mode=OneTime}"
SelectedItem="{Binding Path=SelectedStatus, ValidatesOnDataErrors=True}"
Validation.ErrorTemplate="{x:Null}"
/>-->
<!-- Symbol-->
<Label
Grid.Row="4" Grid.Column="0"
Content="Symbol:"
HorizontalAlignment="Right"
Target="{Binding ElementName=symbolLabelTxt}"
/>
<TextBox
x:Name="symbolTxt"
Grid.Row="4" Grid.Column="2"
Text="{Binding Path=Symbol, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" AcceptsReturn="True" />
<!-- Company-->
<Label
Grid.Row="5" Grid.Column="0"
Content="Company:"
HorizontalAlignment="Right"
Target="{Binding ElementName=companyNameLbl}"
/>
<TextBox
x:Name="comanyNameTxt"
Grid.Row="5" Grid.Column="2"
Text="{Binding Path=CompanyName, ValidatesOnDataErrors=False, UpdateSourceTrigger=PropertyChanged}"
Validation.ErrorTemplate="{x:Null}" IsReadOnly="True" />
<!-- Shares-->
<Label
Grid.Row="6" Grid.Column="0"
Content="Shares:"
HorizontalAlignment="Right"
Target="{Binding ElementName=sharesLbl}"
/>
<TextBox
x:Name="sharesTxt"
Grid.Row="6" Grid.Column="2"
Text="{Binding Path=Shares, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}"
Validation.ErrorTemplate="{x:Null}"
/>
<!-- Account-->
<Label
Grid.Row="7" Grid.Column="0"
Content="Account:"
HorizontalAlignment="Right"
Target="{Binding ElementName=accountLbl}"
/>
<ComboBox
x:Name="accountTxt"
Grid.Row="7" Grid.Column="2"
ItemsSource="{Binding Path=AccountOptions, Mode=OneTime}"
SelectedItem="{Binding Path=SelectedAccount, ValidatesOnDataErrors=True}"
/>
<!-- Price-->
<Label
Grid.Row="8" Grid.Column="0"
Content="Price:"
HorizontalAlignment="Right"
Target="{Binding ElementName=priceLbl}"
/>
<TextBox
x:Name="priceTxt"
Grid.Row="8" Grid.Column="2"
Text="{Binding Path=Price, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}"
Validation.ErrorTemplate="{x:Null}"
/>
<!-- Market Value-->
<Label
Grid.Row="9" Grid.Column="0"
Content="Exposure:"
HorizontalAlignment="Right"
Target="{Binding ElementName=exposureValueLbl}"
/>
<TextBox
x:Name="exposureTxt"
Grid.Row="9" Grid.Column="2"
Text="{Binding Path=Exposure, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
Validation.ErrorTemplate="{x:Null}" IsReadOnly="True" />
<!-- Date Sold-->
<Label
Grid.Row="10" Grid.Column="0"
Content="Date Sold:"
HorizontalAlignment="Right"
Target="{Binding ElementName=sellDateValueLbl}"
/>
<DatePicker
Grid.Row="10" Grid.Column="2"
HorizontalAlignment="Left" Name="sellDatePck"
SelectedDate="{Binding Path=SellDate, ValidatesOnDataErrors=True}"
/>
<!-- Price Sold-->
<Label
Grid.Row="11" Grid.Column="0"
Content="Sell Price:"
HorizontalAlignment="Right"
Target="{Binding ElementName=sellPriceValueLbl}"
/>
<TextBox
x:Name="sellPriceTxt"
Grid.Row="11" Grid.Column="2"
Text="{Binding Path=SellPrice, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}"
Validation.ErrorTemplate="{x:Null}" />
<!-- Commission-->
<Label
Grid.Row="12" Grid.Column="0"
Content="Commission:"
HorizontalAlignment="Right"
Target="{Binding ElementName=commissionValueLbl}"
/>
<TextBox
x:Name="commissionTxt"
Grid.Row="12" Grid.Column="2"
Text="{Binding Path=Commission, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}"
Validation.ErrorTemplate="{x:Null}" />
<!-- SAVE BUTTON -->
<!--<StackPanel Grid.Row="14" Grid.Column="2" Orientation="Vertical">-->
<Button Grid.Row="13" Grid.Column="2" Command="{Binding Path=SaveCommand}" Content="_Save" HorizontalAlignment="Left" Margin="2,2" MinWidth="60" />
<TextBox Grid.Row="14" Grid.Column="2" x:Name="saveStatusTxt" Text="{Binding Path=Status, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" Validation.ErrorTemplate="{x:Null}" IsReadOnly="True"/>
<!--</StackPanel>-->
</Grid>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for TradeEntryView.xaml
/// </summary>
public partial class TradeEntryView : UserControl
{
public TradeEntryView()
{
InitializeComponent();
}
}
}

View File

@@ -1,99 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.TradeModelView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style x:Key="TradeItemStyle" TargetType="{x:Type telerik:RadGridView}">
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Running Model..">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=symbolLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" SelectedIndex="{Binding Path=SelectedSymbolIndex,Mode=TwoWay, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Label Content="Investment" HorizontalAlignment="Left" Target="{Binding ElementName=investmentLbl}" ></Label>
<TextBox Text="{Binding Path=Investment, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="False" IsReadOnly="False"/>
<Label Content="Start Date" HorizontalAlignment="Left" Target="{Binding ElementName=startDateLbl}" ></Label>
<DatePicker HorizontalAlignment="Left" Name="startDatePck" SelectedDate="{Binding Path=SelectedStartDate, ValidatesOnDataErrors=True}" />
<Label Content="Model" HorizontalAlignment="Left" Target="{Binding ElementName=modelLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Models, Mode=OneWay}" DisplayMemberPath="Value" SelectedIndex="{Binding Path=SelectedModelIndex,Mode=TwoWay, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Stop Loss Threshold" HorizontalAlignment="Left" Target="{Binding ElementName=stopLossThreshholLbl}" ></Label>
<TextBox Text="{Binding Path=StopLossThreshold, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="False" IsReadOnly="False"/>
<Label Content="Stop Loss Days" HorizontalAlignment="Left" Target="{Binding ElementName=stopLossDaysLbl}" ></Label>
<TextBox Text="{Binding Path=StopLossDays, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="False" IsReadOnly="False"/>
<Button Margin="0,2" Content="Run Model" HorizontalAlignment="Left" Command="{Binding Path=RunModelCommand}"></Button>
</StackPanel>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<telerik:RadGridView Grid.Row="0" Grid.Column="2" Name="TradeGrid" CanUserSelect="False" ItemContainerStyle="{StaticResource TradeItemStyle}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" ItemsSource="{Binding Path=TradeResults, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Date" DataMemberBinding="{Binding Path=TradeDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Buy/Sell" DataMemberBinding="{Binding Path=BuySell}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Shares" DataMemberBinding="{Binding Path=Shares}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Price" DataMemberBinding="{Binding Path=Price,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Exposure" DataMemberBinding="{Binding Path=Exposure,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Gain/Loss" DataMemberBinding="{Binding Path=GainLoss,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Return" DataMemberBinding="{Binding Path=Return,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Days Held" DataMemberBinding="{Binding Path=DaysHeld}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Comment" DataMemberBinding="{Binding Path=Comment}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
<telerik:RadGridView Grid.Row="2" Grid.Column="2" Name="SummaryGrid" CanUserSelect="False" ItemContainerStyle="{StaticResource TradeItemStyle}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="False" ShowColumnFooters="False" ItemsSource="{Binding Path=TradeResultsSummary, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" AreRowDetailsFrozen="False">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Portfolio Value" DataMemberBinding="{Binding Path=PortfolioValue,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Portfolio Return" DataMemberBinding="{Binding Path=PortfolioReturn,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Average Gain/Loss" DataMemberBinding="{Binding Path=AverageGainLoss,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Average Holding Days" DataMemberBinding="{Binding Path=AverageHoldingDays}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Minimum Holdings Days" DataMemberBinding="{Binding Path=MinimumHoldingDays}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Maximum Holding Days" DataMemberBinding="{Binding Path=MaximumHoldingDays}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for TradeModelView.xaml
/// </summary>
public partial class TradeModelView : UserControl
{
public TradeModelView()
{
InitializeComponent();
}
}
}

View File

@@ -1,290 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.ValuationsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<CollectionViewSource
x:Key="Valuations"
Source="{Binding Path=AllValuations}"
>
</CollectionViewSource>
<GroupStyle x:Key="ValuationGroupStyle">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock
x:Name="txt"
Background="{StaticResource Brush_HeaderBackground}"
FontWeight="Bold"
Foreground="White"
Margin="1"
Padding="4,2,0,2"
Text="People"
/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=Name}" Value="True">
<Setter TargetName="txt" Property="Text" Value="Companies" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
<Style x:Key="ValuationItemStyle" TargetType="{x:Type ListViewItem}">
<!--
Stretch the content of each cell so that we can
right-align text in the Total Sales column.
-->
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<!--
Bind the IsSelected property of a ListViewItem to the
IsSelected property of a ValuationViewModel object.
-->
<Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ItemsControl.AlternationIndex" Value="1" />
<Condition Property="IsSelected" Value="False" />
<Condition Property="IsMouseOver" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#EEEEEEEE" />
</MultiTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical" Grid.Row="0" Grid.Column="0">
<Label Content="Valuation Date" HorizontalAlignment="Right"></Label>
<ComboBox ItemsSource="{Binding Path=ValuationDates, Mode=OneTime}" SelectedItem="{Binding Path=SelectedValuationDate, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Row Count" HorizontalAlignment="Center"></Label>
<TextBox Text="{Binding Path=RowCount, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="False" IsReadOnly="True"/>
<Button Content="Save" Command="{Binding Path=SaveCommand}"></Button>
</StackPanel>
<DockPanel Grid.Row="0" Grid.Column="2" >
<telerik:RadGridView SelectedItem="{Binding SelectedItem, Mode=TwoWay}" dc:GridExportGraphBehavior.ExportExcelProperty="{Binding Path=SaveDocument}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ItemsSource="{Binding Path=AllValuations, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.CompanyDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Company" DataMemberBinding="{Binding Path=Company}" />
<telerik:GridViewDataColumn Header="Sector" DataMemberBinding="{Binding Path=Sector}" />
<telerik:GridViewDataColumn Header="Industry" DataMemberBinding="{Binding Path=Industry}" />
<telerik:GridViewDataColumn Header="Acquirers Multiple Rank" DataMemberBinding="{Binding Path=AMRank,StringFormat='{}{0:N0}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.AMRankDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="TLBRankROIC" DataMemberBinding="{Binding Path=TLBRankROIC,StringFormat='{}{0:N0}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.TLBRankROICDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="TLBRankROC" DataMemberBinding="{Binding Path=TLBRankROC,StringFormat='{}{0:N0}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.TLBRankROCDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="MarketCap" DataMemberBinding="{Binding Path=MarketCap,StringFormat='{}{0:C}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.MarketCapDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="EBIT" DataMemberBinding="{Binding Path=EBIT,StringFormat='{}{0:C}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.EBITDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="AcquirersMultiple" DataMemberBinding="{Binding Path=AcquirersMultiple}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.AcquirersMultipleDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Operating Earnings" DataMemberBinding="{Binding Path=OperatingEarnings,StringFormat='{}{0:C}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.OperatingEarningsDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Earnings Yield" DataMemberBinding="{Binding Path=EarningsYield,StringFormat='{}{0:P}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.EarningsYieldDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Dividend Yield" DataMemberBinding="{Binding Path=DividendYield,StringFormat='{}{0:P}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.DividendYieldDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Enterprise Value" DataMemberBinding="{Binding Path=EnterpriseValue,StringFormat='{}{0:C}'}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.EnterpriseValueDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="SEC13" DataMemberBinding="{Binding Path=SEC13}" />
<telerik:GridViewDataColumn Header="SEC13Filing" DataMemberBinding="{Binding Path=SEC13FilingDate}" />
<telerik:GridViewDataColumn Header="DebtToEquity" DataMemberBinding="{Binding Path=DebtToEquity}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.DebtToEquityDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Long Term Debt" DataMemberBinding="{Binding Path=LongTermDebt}" />
<telerik:GridViewDataColumn Header="Debt Load" DataMemberBinding="{Binding Path=DebtLoad}" />
<telerik:GridViewDataColumn Header="Revenue" DataMemberBinding="{Binding Path=Revenue}" />
<telerik:GridViewDataColumn Header="ROC" DataMemberBinding="{Binding Path=LatestROC,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="ROIC" DataMemberBinding="{Binding Path=LatestROIC,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="ROIC(Avg)" DataMemberBinding="{Binding Path=AverageROIC,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="ROIC Slope" DataMemberBinding="{Binding Path=ROICSlope,StringFormat='{}{0:N}'}" />
<telerik:GridViewDataColumn Header="ROIC Dates" DataMemberBinding="{Binding Path=ROICDates}" />
<telerik:GridViewDataColumn Header="EquityGrowth(Avg)" DataMemberBinding="{Binding Path=AverageEquityGrowth,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="EquityGrowth2Y(Avg)" DataMemberBinding="{Binding Path=AverageEquityGrowth2Y,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="EquityGrowth4Y(Avg)" DataMemberBinding="{Binding Path=AverageEquityGrowth4Y,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="EPSGrowth(Avg)" DataMemberBinding="{Binding Path=AverageEPSGrowth,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="EPSGrowth2Y(Avg)" DataMemberBinding="{Binding Path=AverageEPSGrowth2Y,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="EPSGrowth4Y(Avg)" DataMemberBinding="{Binding Path=AverageEPSGrowth4Y,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="RevenueGrowth(Avg)" DataMemberBinding="{Binding Path=AverageRevenueGrowth,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="RevenueGrowth2Y(Avg)" DataMemberBinding="{Binding Path=AverageRevenueGrowth2Y,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="RevenueGrowth4Y(Avg)" DataMemberBinding="{Binding Path=AverageRevenueGrowth4Y,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="FreeCashflowGrowth(Avg)" DataMemberBinding="{Binding Path=AverageFreeCashflowGrowth,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="OperatingCashflow(Latest)" DataMemberBinding="{Binding Path=OperatingCashflow}" />
<telerik:GridViewDataColumn Header="OperatingCashflow(Avg)" DataMemberBinding="{Binding Path=AverageOperatingCashflow,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="WorkingCapital(Avg)" DataMemberBinding="{Binding Path=AverageWorkingCapital,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="Shares Oustanding" DataMemberBinding="{Binding Path=SharesOutstanding}" />
<telerik:GridViewDataColumn Header="BVPS" DataMemberBinding="{Binding Path=BVPS,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="BVPS Dates" DataMemberBinding="{Binding Path=BVPSDates}" />
<telerik:GridViewDataColumn Header="PBVPS" DataMemberBinding="{Binding Path=PBVPS,StringFormat='{}{0:0.00}'}" />
<telerik:GridViewDataColumn Header="EPS" DataMemberBinding="{Binding Path=EPS,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="PE" DataMemberBinding="{Binding Path=PE,StringFormat='{}{0:F}'}" />
<telerik:GridViewDataColumn Header="P/CF" DataMemberBinding="{Binding Path=PCF}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.PCFDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="PEG" DataMemberBinding="{Binding Path=PEG,StringFormat='{}{0:F}'}" />
<telerik:GridViewDataColumn Header="ImpliedEarningsGrowth" DataMemberBinding="{Binding Path=ImpliedEarningsGrowth,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="Next Earnings Date" DataMemberBinding="{Binding Path=NextEarningsDate,StringFormat='{}{0:MM/dd/yyyy}'}" />
<telerik:GridViewDataColumn Header="Beta90" DataMemberBinding="{Binding Path=Beta90}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.Beta90Description}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Beta2Y" DataMemberBinding="{Binding Path=Beta2Y}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:ValuationsView}},Path=DataContext.Beta2YDescription}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="LowPE (2xEPS)" DataMemberBinding="{Binding Path=LowPE,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="TrailingPE" DataMemberBinding="{Binding Path=TrailingPE,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="AverageLowTrailing" DataMemberBinding="{Binding Path=AverageLowTrailing,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="CurrentStockEstimatePrice" DataMemberBinding="{Binding Path=CurrentStockEstimatePrice,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="PriceEstimate10Y" DataMemberBinding="{Binding Path=PriceEstimate10Y,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="TodaysPriceForRequiredReturn" DataMemberBinding="{Binding Path=TodaysPriceForRequiredReturn,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="LatestPrice" DataMemberBinding="{Binding Path=LatestPrice,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="MOS" DataMemberBinding="{Binding Path=MOS,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="MOS80" DataMemberBinding="{Binding Path=MOS80,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="IntrinsicValue" DataMemberBinding="{Binding Path=IntrinsicValue,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="FundamentalValue" DataMemberBinding="{Binding Path=FundamentalValue,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="NCAVPS" DataMemberBinding="{Binding Path=NetCurrentAssetValuePerShare,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="RGV" DataMemberBinding="{Binding Path=RGV,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="UpsidePcnt" DataMemberBinding="{Binding Path=UpsidePcnt,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="DownsidePcnt" DataMemberBinding="{Binding Path=DownsidePcnt,StringFormat='{}{0:P}'}" />
<telerik:GridViewDataColumn Header="MeanTargetPrice" DataMemberBinding="{Binding Path=MeanTargetPrice,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="LowTargetPrice" DataMemberBinding="{Binding Path=LowTargetPrice,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="HighTargetPrice" DataMemberBinding="{Binding Path=HighTargetPrice,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn Header="Bargain(MOS)" DataMemberBinding="{Binding Path=Bargain}" />
<telerik:GridViewDataColumn Header="Bargain(MOS80)" DataMemberBinding="{Binding Path=Bargain80}" />
<telerik:GridViewDataColumn Header="DateGenerated" DataMemberBinding="{Binding Path=DateGenerated}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for ValuationsView2.xaml
/// </summary>
public partial class ValuationsView : UserControl
{
public ValuationsView()
{
InitializeComponent();
}
}
}

View File

@@ -1,86 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.ValueAtRiskView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local="clr-namespace:TradeBlotter.UIUtils"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
>
<UserControl.Resources>
<Style x:Key="TradeItemStyle" TargetType="{x:Type telerik:RadGridView}">
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="{Binding Path=BusyContent}">
<Grid Background="LightGray">
<DockPanel>
<Grid DockPanel.Dock="Bottom" Margin="0,2,4,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="168" />
<ColumnDefinition Width="153" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="9*" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="1" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<StackPanel Grid.Row="3" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center" Grid.ColumnSpan="2">
<Button Margin="5,0,5,0" Width="65" Content="Add" HorizontalAlignment="Left" Command="{Binding Path=AddCommand}"></Button>
<Button Margin="5,0,5,0" Width="65" Content="Edit" HorizontalAlignment="Left" Command="{Binding Path=EditCommand}"></Button>
<Button Margin="5,0,5,0" Width="65" Content="Remove" HorizontalAlignment="Left" Command="{Binding Path=RemoveCommand}"></Button>
<Button Margin="5,0,5,0" Width="65" Content="Reset" HorizontalAlignment="Left" Command="{Binding Path=ResetCommand}"></Button>
</StackPanel>
<StackPanel Grid.Row="5" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center" Grid.ColumnSpan="6">
<Label VerticalAlignment="Center" Margin="5,0,5,0" Content="VaR:" HorizontalAlignment="Left" />
<TextBlock VerticalAlignment="Center" Margin="5,0,5,0" Text="{Binding Path=ValueAtRisk, ValidatesOnDataErrors=True, StringFormat='{}{0:C}', UpdateSourceTrigger=PropertyChanged}" />
<Label VerticalAlignment="Center" Margin="5,0,5,0" Content="|" />
<Label VerticalAlignment="Center" Margin="5,0,5,0" Content="VaR(%):" HorizontalAlignment="Left" />
<TextBlock VerticalAlignment="Center" Margin="5,0,5,0" Text="{Binding Path=ValueAtRiskPercent, ValidatesOnDataErrors=True, StringFormat='{}{0:P}', UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
<StackPanel Grid.Row="7" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center" Grid.ColumnSpan="5">
<Label Content="Days:" HorizontalAlignment="Left" Target="{Binding ElementName=daysLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=DayCounts, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDayCount, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Confidence:" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=ConfidenceValues, Mode=OneWay}" SelectedItem="{Binding Path=SelectedConfidence, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="%" HorizontalAlignment="Left" ></Label>
<Label Content="AsOf:" HorizontalAlignment="Left" ></Label>
<telerik:RadDatePicker SelectableDateStart="{Binding Path=SelectableDateStart}" SelectableDateEnd="{Binding Path=SelectableDateEnd}" VerticalAlignment="Top" HorizontalAlignment="Left" SelectedDate="{Binding Path=SelectedDate,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
<telerik:RadGridView ItemsSource="{Binding Path=AllHoldings, ValidatesOnDataErrors=True,Mode=TwoWay}" CanUserSelect="True" SelectionMode="Single" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemContainerStyle="{StaticResource TradeItemStyle}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="6" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" AutoGenerateColumns="False" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" />
<telerik:GridViewDataColumn IsReadOnly="False" Header="Shares" DataMemberBinding="{Binding Path=Shares,StringFormat='{}{0:0.000}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Industry" DataMemberBinding="{Binding Path=Industry}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Sector" DataMemberBinding="{Binding Path=Sector}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Exposure" DataMemberBinding="{Binding Path=Exposure,StringFormat='{}{0:C}'}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Market Value" DataMemberBinding="{Binding Path=MarketValue,StringFormat='{}{0:C}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:ValueAtRiskModelMarketValueFunction />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Weight" DataMemberBinding="{Binding Path=Weight,StringFormat='{}{0:P}'}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<local:ValueAtRiskModelWeightFunction />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="AsOf" DataMemberBinding="{Binding Path=AsOf,StringFormat='{}{0:MM/dd/yyyy}'}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for ValueAtRiskView.xaml
/// </summary>
public partial class ValueAtRiskView : UserControl
{
public ValueAtRiskView()
{
InitializeComponent();
}
}
}

View File

@@ -1,80 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.WatchListView"
xmlns:vw="clr-namespace:TradeBlotter.Views"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style x:Key="TradeItemStyle" TargetType="{x:Type telerik:RadGridView}">
</Style>
</UserControl.Resources>
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Loading Watchlist Items...">
<Grid Background="LightGray">
<DockPanel>
<Grid DockPanel.Dock="Left" Margin="0,2,4,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="3" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="2" FontFamily="Arial" Content="{Binding Path=Title}" HorizontalAlignment="Center" FontSize="20"></Label>
<StackPanel Orientation="Vertical" Grid.Row="2" Grid.Column="0">
<Label Content="Watch List" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=WatchListNames, Mode=OneTime}" SelectedItem="{Binding Path=SelectedWatchList, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<!--<Label Content="Symbol" HorizontalAlignment="Left" Target="{Binding ElementName=symbolLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Symbols, Mode=OneWay}" SelectedItem="{Binding Path=SelectedSymbol, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>-->
<!--<Label Content="Date" HorizontalAlignment="Left" Target="{Binding ElementName=ratingDateLbl}" ></Label>-->
<!--<ComboBox ItemsSource="{Binding Path=Dates, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDate, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>-->
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
</StackPanel>
<DockPanel Grid.Row="2" Grid.Column="2" >
<telerik:RadGridView SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemContainerStyle="{StaticResource TradeItemStyle}" AlternationCount="2" AlternateRowBackground="Bisque" ShowGroupFooters="True" ShowColumnFooters="True" ItemsSource="{Binding Path=AllItems, ValidatesOnDataErrors=True}" AutoGenerateColumns="False" >
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu x:Name="GridContextMenu" StaysOpen="False" ItemsSource="{Binding MenuItems}">
<telerik:RadContextMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Text}" />
<Setter Property="Command" Value="{Binding MenuItemClickedCommand}" />
<Setter Property="StaysOpenOnClick" Value="False" />
</Style>
</telerik:RadContextMenu.ItemContainerStyle>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Symbol" DataMemberBinding="{Binding Path=Symbol}" >
<telerik:GridViewColumn.ToolTipTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock Background="LemonChiffon" MaxWidth="1000" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type vw:WatchListView}},Path=DataContext.Description}"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewColumn.ToolTipTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn IsReadOnly="True" Header="Company Name" DataMemberBinding="{Binding Path=CompanyName}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Sector" DataMemberBinding="{Binding Path=Sector}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Industry" DataMemberBinding="{Binding Path=Industry}" />
<telerik:GridViewDataColumn IsReadOnly="True" Header="Security Type" DataMemberBinding="{Binding Path=SecurityType}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DockPanel>
</Grid>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for WatchListView.xaml
/// </summary>
public partial class WatchListView : UserControl
{
public WatchListView()
{
InitializeComponent();
}
}
}

View File

@@ -1,55 +0,0 @@
<UserControl x:Class="TradeBlotter.Views.YieldCurveView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
xmlns:dc="clr-namespace:TradeBlotter.UIUtils"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:wpfx="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<wpfx:BusyIndicator Name="BusyBar" IsBusy="{Binding Path=BusyIndicator}" BusyContent="Generating Yield Curve...">
<Grid Background="LightGray">
<DockPanel>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<Label Content="Curve" HorizontalAlignment="Left" Target="{Binding ElementName=curveLbl}" ></Label>
<ComboBox ItemsSource="{Binding Path=Curves, Mode=OneWay}" SelectedItem="{Binding Path=SelectedCurve, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Label Content="Day Count" HorizontalAlignment="Left" ></Label>
<ComboBox ItemsSource="{Binding Path=DayCounts, Mode=OneWay}" SelectedItem="{Binding Path=SelectedDayCount, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" ></ComboBox>
<Button Margin="0,2" Content="Refresh" HorizontalAlignment="Left" Command="{Binding Path=RefreshCommand}"></Button>
<CheckBox Margin="0,2" Content="Legend Visible" HorizontalAlignment="Left" IsChecked="{Binding Path=CheckBoxLegendVisible, Mode=TwoWay}"></CheckBox>
</StackPanel>
</Grid>
<d3:ChartPlotter Background="WhiteSmoke" Name="YieldCurve" Margin="10,10,20,10" LegendVisibility="Hidden" dc:ChartPlotterLegendBehavior.LegendVisibleProperty="{Binding Path=LegendVisible}" d3:Viewport2D.UsesApproximateContentBoundsComparison="False" BorderThickness="0">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis Name="countAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
<d3:LineGraph d3:NewLegend.Description="Yield" x:Name="Values" DataSource="{Binding Path=Values}" Stroke="MidnightBlue" StrokeThickness="1" />
<d3:LineGraph d3:NewLegend.Description="MA5" x:Name="MA5" DataSource="{Binding Path=MA5}" Stroke="Goldenrod" StrokeThickness="3" />
<d3:LineGraph d3:NewLegend.Description="MA21" x:Name="MA21" DataSource="{Binding Path=MA21}" Stroke="Green" StrokeThickness="3" />
<d3:LineGraph d3:NewLegend.Description="MA55" x:Name="MA55" DataSource="{Binding Path=MA55}" Stroke="LightGreen" StrokeThickness="3" />
<d3:CursorCoordinateGraph Name="cursorGraph" dc:CoordinateGraphBehavior.XTextMappingProperty="MM/dd/yyyy" LineStrokeThickness="1"/>
<!--<d3:AxisCursorGraph></d3:AxisCursorGraph>-->
<d3:Header FontFamily="Arial" Content="{Binding Path=Title}"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="Yield"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="Date" />
</d3:ChartPlotter>
</DockPanel>
</Grid>
</wpfx:BusyIndicator>
</UserControl>

View File

@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TradeBlotter.Views
{
/// <summary>
/// Interaction logic for YieldCurveView.xaml
/// </summary>
public partial class YieldCurveView : UserControl
{
public YieldCurveView()
{
InitializeComponent();
}
}
}