#56971 - Mon Jul 29 2013 10:25 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: Danil]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Что такое "неправильный вход"? Был зафиксирован убыток.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56973 - Mon Jul 29 2013 10:44 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: Farin]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Уважаемый господин 777 ! Возникла такая проблемашечка: Не могу запустить скрипт. c:\Users\ФаРиН\AppData\Local\TSLab\TSLab12\temp\code181.cs(118,39) : error CS0433:
Тип "TSLab.Script.Handlers.HasTwoLoss" существует как в "c:\Program Files (x86)\TSLab 1.2\TSLab.Script.Handlers.dll",
так и в "c:\Program Files (x86)\TSLab 1.2\Handlers\Exit_price.dll"
И что теперь делать? Exit_price.dll удалять нельзя и TSLab.Script.Handlers.dll тоже нельзя.
Не могли бы вы переделать вашу сборку? Учитывая реалии сборки 1.2.7.0 Покорнейше просим! Мне не сподручно компилировать. Вот даю открытым кодом. Поменяв namespace сможете скомпилировать и пользовать. HasTwoLoss не даю, так как разработчики ее уже в программу запаяли: using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Кол-во баров после неправильного входа")]
[HandlerCategory("777")]
public class LastWasLossЗ : IOneSourceHandler, IBooleanReturns, IValuesHandler, ISecurityInputs
{
[HandlerParameter(true, "5", Min = "1", Max = "10", Step = "1")]
public int Пропуск
{
get;
set;
}
public bool Execute(ISecurity source, int barNum)
{
var pos = source.Positions.LastPositionClosed;
if (pos == null)
{
return false;
}
return pos.Profit() <= 0 && pos.ExitBarNum + Пропуск > barNum;
}
}}
Отредактировано 777 (Mon Jul 29 2013 10:55 AM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56974 - Mon Jul 29 2013 10:45 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: Farin]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Номер бара Входа")]
[HandlerCategory("777")]
public class N_свечи_входа : IPosition2Double
{
public double Execute(IPosition pos, int barNum)
{
if (pos == null)
{
return 0;
}
return pos.EntryBarNum ;
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56975 - Mon Jul 29 2013 10:46 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: Farin]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Цена Выхода")]
[HandlerCategory("777")]
public class ExitPrice : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
public double Execute(ISecurity source, int barNum)
{
var pos = source.Positions.LastPositionClosed;
return pos == null ? 0 : pos.ExitPrice;
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56976 - Mon Jul 29 2013 10:46 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Номер бара Выхода")]
[HandlerCategory("777")]
public class N_свечи_Выхода : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
public double Execute(ISecurity source, int barNum)
{
var pos = source.Positions.LastPositionClosed;
if (pos == null)
{
return 0;
}
return pos.ExitBarNum;
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56977 - Mon Jul 29 2013 10:47 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Номер текущего бара")]
[HandlerCategory("777")]
public class Nбара : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
public double Execute(ISecurity source, int barNum)
{
return barNum;
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56978 - Mon Jul 29 2013 10:47 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Профит Последней Закрытой Позиции")]
[HandlerCategory("777")]
public class Доход_последней_закрытой_позы : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
public double Execute(ISecurity source, int barNum)
{
var pos = source.Positions.LastPositionClosed;
return pos == null ? 0 : pos.Profit();
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56979 - Mon Jul 29 2013 10:48 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using TSLab.Script;
using TSLab.Script.Handlers;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
namespace test
{
[HandlerName("Profit_N_close_Position")]
[HandlerCategory("777")]
public class LastPosition : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
[HandlerParameter(true, "", NotOptimized = true)]
public int Number { get; set; }
public double Execute(ISecurity source, int barNum)
{
var list = source.Positions.Where(pos => !pos.IsActive && pos.EntryBarNum < barNum)
.OrderBy(pos => pos.ExitBar.Date).ToArray();
if (list.Length < 1)
return 0;
else if ((list.Length - Number) < 0 || Number<0)
return 0;
else
return list[list.Length - Number].Profit();
}
}
}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56980 - Mon Jul 29 2013 10:48 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Кол-во баров после неправильного входа в Лонг")]
[HandlerCategory("777")]
public class LastWasLossLong : IOneSourceHandler, IBooleanReturns, IValuesHandler, ISecurityInputs
{
[HandlerParameter(true, "5", Min = "1", Max = "10", Step = "1")]
public int Пропуск
{
get;
set;
}
public bool Execute(ISecurity source, int barNum)
{
var pos = source.Positions.LastLongPositionClosed;
if (pos == null)
{
return false;
}
return pos.Profit() <= 0 && pos.ExitBarNum + Пропуск > barNum;
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56981 - Mon Jul 29 2013 10:49 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Кол-во баров после неправильного входа в шорт")]
[HandlerCategory("777")]
public class LastWasLossShort : IOneSourceHandler, IBooleanReturns, IValuesHandler, ISecurityInputs
{
[HandlerParameter(true, "5", Min = "1", Max = "10", Step = "1")]
public int Пропуск
{
get;
set;
}
public bool Execute(ISecurity source, int barNum)
{
var pos = source.Positions.LastShortPositionClosed;
if (pos == null)
{
return false;
}
return pos.Profit() <= 0 && pos.ExitBarNum + Пропуск > barNum;
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56982 - Mon Jul 29 2013 10:49 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.ScriptFrom777
{
[HandlerName("PosProfitName")]
[HandlerCategory("777")]
public class LastProfitFromByName : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
[HandlerParameter(true, "", NotOptimized = true)]
public string Name { get; set; }
public double Execute(ISecurity source, int barNum)
{
// отбираем закрытые сделки с нужным именем закрытия, сортируем по дате закрытия
var list = source.Positions.Where(pos => !pos.IsActive && pos.ExitBarNum < barNum
&& pos.ExitSignalName == Name)
.OrderByDescending(pos => pos.ExitBar.Date).ToArray();
// возвращаем профит первой из найденных позиций
return list.Length < 1 ? 0 : list[0].Profit();
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56983 - Mon Jul 29 2013 10:49 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.Script.Handlers
{
[HandlerName("Профит Предпоследней закрытой позиции Шорт")]
[HandlerCategory("777")]
public class HasTwoLoss__ : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
public double Execute(ISecurity source, int barNum)
{
var list = source.Positions.Where(pos => !pos.IsActive && pos.IsShort && pos.EntryBarNum < barNum).OrderByDescending(pos => pos.ExitBar.Date).ToArray();
if(list.Length < 2)
{
return 0;
}
return list[1].Profit();
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56984 - Mon Jul 29 2013 10:50 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
namespace TSLab.ScriptFrom777
{
[HandlerName("Profit From First for Day")]
[HandlerCategory("777")]
public class ProfitFromFirst : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
public double Execute(ISecurity source, int barNum)
{
// берем дату текущего бара
var curBarDate = source.Bars[barNum].Date;
// отбираем закрытые сделки с днем закрытия совпадающим с текущим, сортируем по дате закрытия
var list = source.Positions.Where(pos => !pos.IsActive && pos.EntryBarNum < barNum
&& pos.ExitBar.Date.DayOfYear == curBarDate.DayOfYear
&& pos.ExitBar.Date.Year == curBarDate.Year)
.OrderBy(pos => pos.ExitBar.Date).ToArray();
// возвращаем профит первой из найденных позиций
if(list.Length < 1)
{
return 0;
}
return list[0].Profit();
}
}
}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#56985 - Mon Jul 29 2013 10:53 AM
Re: #58 Блоки ЦенаВыхода Бар выхода и бар входа
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.ScriptFrom777
{
[HandlerName("PosProfitПредпоследняяName")]
[HandlerCategory("777")]
public class Предпоследн_ProfitFromByName : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
[HandlerParameter(true, "", NotOptimized = true)]
public string Name { get; set; }
public double Execute(ISecurity source, int barNum)
{
// отбираем закрытые сделки с нужным именем закрытия, сортируем по дате закрытия
var list = source.Positions.Where(pos => !pos.IsActive && pos.ExitBarNum < barNum
&& pos.ExitSignalName == Name)
.OrderByDescending(pos => pos.ExitBar.Date).ToArray();
// возвращаем профит первой из найденных позиций
return list.Length < 2 ? 0 : list[1].Profit();
}
}}
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
|
|