#26544 - Tue Apr 26 2011 12:15 PM
Re: #12 / Индикатор: SuperTrend
[Re: Nektodron]
|
stranger
Registered: Sun Apr 17 2011
Записи: 6
|
Добрый день. У меня подобная ошибка возникает. Я подключал внешний скрипт стратегии, которая у вас на форуме находится (Donchian_breakout). При сохранении стратегии я получаю ошибку 12:14:14.14 100 Скрипт: TestScript. c:\Documents and Settings\enote\Local Settings\Application Data\TSLab\TSLab\temp\code32.cs(26,22) : error CS0234: The type or namespace name 'ScriptEngine' does not exist in the namespace 'TSLab' (are you missing an assembly reference?) Как от нее избавиться - подскажите?
|
Наверх
|
|
|
|
#26604 - Tue Apr 26 2011 07:08 PM
Re: #12 / Индикатор: SuperTrend
[Re: Nektodron]
|
stranger
Registered: Sun Apr 17 2011
Записи: 6
|
Я уже разобрался. Там соединения не было между источником и внешним скриптом. Кстати можете ссылку дать на материал, что означают эти соединения. Какие блоки должны присутствовать в режиме редактирования в случае работы с внешним скриптом?
|
Наверх
|
|
|
|
#37236 - Sat Feb 11 2012 04:25 PM
Re: #12 / Индикатор: SuperTrend
[Re: RomanK]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
на самом деле на принципах, которые в этой ветке заложены в SuperTrend базируется TrendMagic, а SuperTrend базируется только на ATR
но и то, что есть реализовано как-то не так - сужу по линиям SuperTrend-а - в нете везде они ровные
Отредактировано vito333 (Sat Feb 11 2012 04:26 PM)
|
Наверх
|
|
|
|
#37237 - Sat Feb 11 2012 04:41 PM
Re: #12 / Индикатор: SuperTrend
[Re: vito333]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
В ветке этот вопрос уже встречался. Ответ: Я не делал усреднения. Вы можете добавить любое из имеющихся. Просто к индикатору добавьте к примеру SMA и получите то, что везде в нете.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#37244 - Sat Feb 11 2012 05:34 PM
Re: #12 / Индикатор: SuperTrend
[Re: 777]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
вот тут логика кривовата
for (int i = 0; i < c.Count; i++) { var cm = h[i] + atr[i]; var cb = l[i] - atr[i];
var st = cci[i] > 0 ? cb : cm; list.Add(st); } нужно сверяться с предыдущим значением list на меньше\больше, тогда не будет лишней пляски
Отредактировано vito333 (Sat Feb 11 2012 06:25 PM)
|
Наверх
|
|
|
|
#37245 - Sat Feb 11 2012 05:48 PM
Re: #12 / Индикатор: SuperTrend
[Re: vito333]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Ну у меня только одно оправдание. Код этого индюка сделан в 2010 году, я тогда только начинал изучать c# Поправьте, как считаете нужным и выкладывайте сюда, будут все только Вам благодарны!
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#37248 - Sat Feb 11 2012 06:29 PM
Re: #12 / Индикатор: SuperTrend
[Re: 777]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
[HandlerCategory("vvTSLtools")]
public class TrendMagic : IBar2DoubleHandler, IContextUses
{
[HandlerParameter(true, "50", Min = "5", Max = "100", Step = "1")]
public int PeriodCCI { get; set; }
[HandlerParameter(true, "5", Min = "1", Max = "30", Step = "1")]
public int PeriodATR { get; set; }
public IList<double> Execute(ISecurity source)
{
var h = source.HighPrices;
var l = source.LowPrices;
var c = source.ClosePrices;
double CurrTMVal;
var atr = Series.AverageTrueRange (source.Bars, PeriodATR);
var cci = Series.CCI(source.Bars, PeriodCCI);
IList<double> tm = new List<double>(c.Count);
for (int i = 0; i < c.Count; i++)
{
if (i == 0)
{
tm.Add((h[i] - l[i])/2);
continue;
};
if (cci[i] > 0)
{
// тренд растущий
CurrTMVal = l[i] - atr[i];
CurrTMVal = CurrTMVal < tm[i - 1] ? tm[i - 1] : CurrTMVal;
}
else
{
// тренд снижающийся
CurrTMVal = h[i] + atr[i];
CurrTMVal = CurrTMVal > tm[i - 1] ? tm[i - 1] : CurrTMVal;
}
tm.Add(CurrTMVal);
}
return tm;
}
public IContext Context { get; set; }
}
|
Наверх
|
|
|
|
#37251 - Sat Feb 11 2012 07:47 PM
Re: #12 / Индикатор: SuperTrend
[Re: vito333]
|
Pooh-Bah
Registered: Sun Feb 21 2010
Записи: 2331
Loc: Ухта
|
|
Наверх
|
|
|
|
#37263 - Sun Feb 12 2012 04:26 AM
Re: #12 / Индикатор: SuperTrend
[Re: usas]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
|
Наверх
|
|
|
|
#44260 - Sat Jul 14 2012 04:05 PM
Re: #12 / Индикатор: SuperTrend
[Re: vito333]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
ссылка на то, что настоящий SuperTrend построен только на ATR (код от автора)
пруфлинк
Отредактировано vito333 (Sat Jul 14 2012 04:10 PM)
|
Наверх
|
|
|
|
#51535 - Tue Jan 29 2013 02:47 PM
Re: #12 / Индикатор: SuperTrend
[Re: 777]
|
stranger
Registered: Tue Jan 29 2013
Записи: 11
Loc: USA
|
I did not do averaging. You can add any of the existing ones. Just to add an indicator for example SMA and get that everywhere on the net.
|
Наверх
|
|
|
|
#63652 - Tue Aug 05 2014 12:09 AM
Re: #12 / Индикатор: SuperTrend
[Re: 777]
|
enthusiast
Registered: Thu Apr 11 2013
Записи: 359
|
SuperTrend CCI(50)>0?(LOW-TR):(HIGH+TR) TR - truerange Подцепляем к сжатию(можно и к источнику). Период CCI вынес отдельно, так, что его то же можно крутить(по книге должен быть ровно 50) TR - наделил EMA, и он стал ATR так, что то ж можно крутить. Если период EMA=1, то ATR=TR На картинке ТСЛаба супертренд с мультипликатором 3. Меньше намного хуже, больше - вообще не вижу смысла, т.к. слишком далеко убегает от цены. На второй картинке Супертренд слегка усовершенствованный с теми же значениями ATR и CCI. Тренд держит намного лучше, держится плотно к цене и даже идет прямо по цене, при этом не меняя цвет зачастую даже на неслабых откатах (тренд характеризует не только направление, но и цвет). Я начал его делать для ТСЛ, но для меня он оказался посложней, чем робот. Если есть интерес, дам подробности как по коду, так и по некоторым вариантам использования.
Attachments
1.png (375 downloads)2.png (360 downloads)
|
Наверх
|
|
|
|
#63653 - Tue Aug 05 2014 12:46 AM
Re: #12 / Индикатор: SuperTrend
[Re: VladMih]
|
enthusiast
Registered: Thu Apr 11 2013
Записи: 359
|
Да, и еще. Нижайшая просьба показать как это можно сделать не кодом, а кубиками. Очень уж меня заинтриговало почему я за 4 дня, несколько раз начиная с нуля, смог сделать только нечто похожее на 1-й рисунок, хотя алгоритм полностью понятен.
Правда, есть нюанс: почему-то компилятор отказался принимать у меня вариант с использованием связки логформулы с блоком "Not", который по идее должен был дать искомое. А без этого два тренда-направления с двумя цветами логикой в формуле описать невозможно.
|
Наверх
|
|
|
|
#63657 - Tue Aug 05 2014 10:19 AM
Re: #12 / Индикатор: SuperTrend
[Re: VladMih]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
похож на magictrend из моего сборника
|
Наверх
|
|
|
|
#63659 - Tue Aug 05 2014 10:53 AM
Re: #12 / Индикатор: SuperTrend
[Re: vito333]
|
enthusiast
Registered: Thu Apr 11 2013
Записи: 359
|
Я почему-то не вижу его в сборнике, хотя скачивал последнюю версию, выложенную в вашей ветке 31 июля. Более менее похожий VTrend (если настройки повыше), но это тоже совсем не то. ___________ Индикатор правильно называется не magictrend, а TrendMagic. Щас буду смотреть - поторопился сообщить, не успев глянуть.
Отредактировано VladMih (Tue Aug 05 2014 11:14 AM) Edit Reason: Нашел! )))))))
|
Наверх
|
|
|
|
#63660 - Tue Aug 05 2014 11:28 AM
Re: #12 / Индикатор: SuperTrend
[Re: VladMih]
|
enthusiast
Registered: Thu Apr 11 2013
Записи: 359
|
Индикатор [в наборе] правильно называется не magictrend, а TrendMagic. Чуть более нервный и без раскрашивания (оно тоже имеет значение), но в основном очень похож. Если не сделаю или не найду то, что искал, буду пользоваться этим. vito333, спасибо! А нельзя ли посмотреть как TrendMagic выглядит в кубиках?
|
Наверх
|
|
|
|
#63662 - Tue Aug 05 2014 03:29 PM
Re: #12 / Индикатор: SuperTrend
[Re: VladMih]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
что значит "в кубиках"?
а внутреннюю логику могу глянуть у вашей версии и сказать, одно и то же это или нет
|
Наверх
|
|
|
|
#63668 - Tue Aug 05 2014 11:09 PM
Re: #12 / Индикатор: SuperTrend
[Re: vito333]
|
enthusiast
Registered: Thu Apr 11 2013
Записи: 359
|
Логика та. Небольшая разница скорей всего из-за котировок + нет раскрашивания. А "в кубиках" - это значит сделанный блоками ТСЛаба. Учиться пытаюсь, вот и хочу посмотреть как реализовано. Чтобы понять почему сам не смог. #property copyright "(С) 2014, Satori, 1.0"
#property link "http://fx-vladmih.ru"
#property version "1.0"
#property description "Однотаймовый супертренд. Используется в мультитаймовом. Поэтому не удалять!"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_type1 DRAW_LINE
#property indicator_type2 DRAW_LINE
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID
extern int ATR_Period = 5;
double TrendUp[];
double TrendDown[];
int st = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function|
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexBuffer(0, TrendUp);
SetIndexBuffer(1, TrendDown);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function|
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function|
//+------------------------------------------------------------------+
int start()
{
int limit, i;
double cciTrendNow, cciTrendPrevious;
int counted_bars = IndicatorCounted();
//---- check for possible errors
if(counted_bars < 0) return(-1);
//---- last counted bar will be recounted
if(counted_bars > 0) counted_bars--;
limit=Bars-counted_bars;
for(i = limit; i >= 0; i--) {
cciTrendNow = iCCI(NULL, 0, 50, PRICE_TYPICAL, i);
cciTrendPrevious = iCCI(NULL, 0, 50, PRICE_TYPICAL, i+1);
if (cciTrendNow >= st && cciTrendPrevious < st) {
TrendUp[i+1] = TrendDown[i+1];
}
if (cciTrendNow <= st && cciTrendPrevious > st) {
TrendDown[i+1] = TrendUp[i+1];
}
if (cciTrendNow >= st) {
TrendUp[i] = Low[i] - iATR(NULL, 0, ATR_Period, i);
if (TrendUp[i] < TrendUp[i+1]) {
TrendUp[i] = TrendUp[i+1];
}
}
else if (cciTrendNow <= st) {
TrendDown[i] = High[i] + iATR(NULL, 0, ATR_Period, i);
if (TrendDown[i] > TrendDown[i+1]) {
TrendDown[i] = TrendDown[i+1];
}
}
}
//----
return(0);
}
|
Наверх
|
|
|
|
#63672 - Wed Aug 06 2014 03:47 AM
Re: #12 / Индикатор: SuperTrend
[Re: VladMih]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
|
Наверх
|
|
|
|
|
|