Переделанные и доработанные индикаторы для Thinkorswim!!!

Статус
Закрыто для дальнейших ответов.

kikos

Старейшина
Регистрация
23.09.14
Сообщения
4,554
Реакции
6,126
kikos не предоставил никакой дополнительной информации.
Всем доброго времени суток! Решил создать тему где те кто торгует с помощью платформы Thinkorswim могут выкладывать свои мысли касаемо индикаторов и того что можно прописать в код! Я понемаю что свои наработки некто не желает выкладывать это и понятно потому что вложено много сил а главное времени которое дороже денег да и вокруг много тех кто ничего не делает а просто качает или того хлещё потом продаёт! В данной теме любой может кинуть индюк с элементарной просьбой сделать аллерт или что то добавить в него! У меня почта иной раз разрывается просто из за подобного!Приведу несколько примеров!!!




Вобщем скрины можно кидать до бесконечности! Можете писать даже самые бредовые идеи, но они могут таковыми показаться для вас а на самом деле возможно реальны!
Я торгую на минутках и начну первым это моё малое!))))))))))))
 
Последнее редактирование модератором:

Taim

Гений
Регистрация
18.04.14
Сообщения
951
Реакции
983
Taim не предоставил никакой дополнительной информации.
Taim, вернее 60- 67%
 

Taim

Гений
Регистрация
18.04.14
Сообщения
951
Реакции
983
Taim не предоставил никакой дополнительной информации.
vint, ну, для "голых" уровней, думаю, довольно неплохо)
 

sssss

Старейшина
Регистрация
07.08.14
Сообщения
1,481
Реакции
1,069
sssss не предоставил никакой дополнительной информации.

kikos

Старейшина
Регистрация
23.09.14
Сообщения
4,554
Реакции
6,126
kikos не предоставил никакой дополнительной информации.
да можете непарится так как это очередная волна просто этого индикатора он сейчас показует так а через неделю покажет 30 вот и всё! но это я так думаю ! утром крутану его и выложу скрины!
 

sssss

Старейшина
Регистрация
07.08.14
Сообщения
1,481
Реакции
1,069
sssss не предоставил никакой дополнительной информации.
Так он без тестера, нужен с тестером
 

Taim

Гений
Регистрация
18.04.14
Сообщения
951
Реакции
983
Taim не предоставил никакой дополнительной информации.
sssss,
Код:
#############################################
# Перевел на русский язык: Павел Эльба.
# Ссылка на страницу: http://vk.com/pavel_elba
# Сигналы для бинарных опционов.
# Ссылка на группу http://vk.com/boprofit
#############################################

input price = close;
input showOnlyToday = no;
input ShowLabels = yes;
input period = AggregationPeriod.DAY;

def RangeHigh = high(period = period)[0];
def RangeLow = low(period = period)[0];
def RangeSize = AbsValue(RangeHigh - RangeLow);
def MMLevel8 = 8 / 8;
def MMLevel7 = 7 / 8;
def MMLevel6 = 6 / 8;
def MMLevel5 = 5 / 8;
def MMLevel4 = 4 / 8;
def MMLevel3 = 3 / 8;
def MMLevel2 = 2 / 8;
def MMLevel1 = 1 / 8;
def MMLevel0 = 0 / 8;
def TimeCondition = IsNaN(Close[-1]) and !IsNaN(close[0]) and ShowLabels;
def MML8 = RangeHigh;
def MML7 = RangeLow + RangeSize * (MMLevel7);
def MML6 = RangeLow + RangeSize * (MMLevel6);
def MML5 = RangeLow + RangeSize * (MMLevel5);
def MML4 = RangeLow + RangeSize * (MMLevel4);
def MML3 = RangeLow + RangeSize * (MMLevel3);
def MML2 = RangeLow + RangeSize * (MMLevel2);
def MML1 = RangeLow + RangeSize * (MMLevel1);
def MML0 = RangeLow;
plot Level8;
plot Level7;
plot Level6;
plot Level5;
plot Level4;
plot Level3;
plot Level2;
plot Level1;
plot Level0;
if showOnlyToday and !IsNaN(close(period = period)[-1])
then {
Level8 = Double.NaN;
Level7 = Double.NaN;
Level6 = Double.NaN;
Level5 = Double.NaN;
Level4 = Double.NaN;
Level3 = Double.NaN;
Level2 = Double.NaN;
Level1 = Double.NaN;
Level0 = Double.NaN;
} else {
Level8 = MML8;
Level7 = MML7;
Level6 = MML6;
Level5 = MML5;
Level4 = MML4;
Level3 = MML3;
Level2 = MML2;
Level1 = MML1;
Level0 = MML0;
}
Level8.SetDefaultColor(color.green);
Level8.HideBubble();
Level8.SetLineWeight(1);
AddChartBubble(TimeCondition, MML8, "8/8 СОПРОТИВЛЕНИЕ", color.green, yes);
Level7.SetDefaultColor(color.cyan);
Level7.SetStyle(curve.Short_Dash);
Level7.HideBubble();
AddChartBubble(TimeCondition , MML7, "7/8 ОСТАНОВКА_РАЗВОРОТ",
color.yellow, yes);
Level6.SetDefaultColor(color.yellow);
Level6.SetLineWeight(1);
Level6.HideBubble();
AddChartBubble(TimeCondition , MML6, "6/8 ВРАЩЕНИЕ_РАЗВОРОТ", color.pink,
yes);
Level5.SetDefaultColor(color.pink);
Level5.SetStyle(curve.Short_Dash);
Level5.HideBubble();
AddChartBubble(TimeCondition , MML5, "5/8 ВЕРХ_КАНАЛА",
color.green, yes);
Level4.SetDefaultColor(color.green);
Level4.SetLineWeight(1);
Level4.HideBubble();
AddChartBubble(TimeCondition ,MML4, "4/8 СОПРОТИВЛЕНИЕ_ПОДДЕРЖКА", color.cyan, yes);
Level3.SetDefaultColor(color.cyan);
Level3.SetStyle(curve.Short_Dash);
Level3.HideBubble();
AddChartBubble(TimeCondition ,MML3, "3/8 ДНО_КАНАЛА", color.green, yes);
Level2.SetDefaultColor(color.green);
Level2.SetLineWeight(1);
Level2.HideBubble();
AddChartBubble(TimeCondition ,MML2, "2/8 ВРАЩЕНИЕ_РАЗВОРОТ", color.pink, yes);
Level1.SetDefaultColor(color.pink);
Level1.SetStyle(curve.Short_Dash);
Level1.HideBubble();
AddChartBubble(TimeCondition ,MML1, "1/8 ОСТАНОВКА_РАЗВОРОТ", color.yellow, yes);
Level0.SetDefaultColor(color.red);
Level0.HideBubble();
Level0.SetLineWeight(1);
AddChartBubble(TimeCondition ,MML0, "0/8 ПОДДЕРЖКА", color.red, yes);


def up1 = if low <= MML0 and price > MML0 then open > close else 0;
def up2 = if low <= MML1 and price > MML1 then open > close else 0;
def up3 = if low <= MML2 and price > MML2 then open > close else 0;


def down1 = if high >= MML8 and price < MML8 then open < close else 0;
def down2 = if high >= MML7 and price < MML7 then open < close else 0;
def down3 = if high >= MML6 and price < MML6 then open < close else 0;

plot up = up1 or up2 or up3;
Up.SetDefaultColor(Color.WHITE);
Up.SetLineWeight(4);
Up.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
Alert(Up, "CALL Alert", Alert.BAR, Sound.Ring);

plot down = down1 or down2 or down3;
Down.SetDefaultColor(Color.WHITE);
Down.SetLineWeight(4);
Down.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
Alert(Down, "PUT Alert", Alert.BAR, Sound.Ring);

##########---------------------------TEST OPTIONS---------------------------------------------
#hint timetest: Test according to timeperiods
#hint expiry: Numbers of candles after signal (1 = next candle after signal, 2 = second candle)
#hint secondcandle: Use only if candleexpiry = 1. Adding signals taking second candle after loss
#hint moneycount: display labels with profit/loss in $
#hint invest: amount of investment per trade
#hint RPI: Return Per Investment (payout)


input expiry = 1;
input secondcandle = no;
input moneycount = no;
input invest = 25;
input RPI = 0.80;
input timetest = no;

########-------------------------------------------TIME FILTER-----------------------------------------------
#hint TradingOpen1: EST NY TIME
input TradingOpen1 = 330;
input TradingClose1 = 530;
input TradingOpen2 = 0930;
input TradingClose2 = 1130;

#hint input AsiaOpenTime1 = 2000;
#hint input AsiaCloseTime1 = 2359;
#hint input AsiaOpenTime2 = 0000;
#hint input AsiaCloseTime2 = 0200;
#hint input EUOpenTime = 330;
#hint input EUCloseTime = 530;
#hint input USOpenTime = 0930;
#hint input USCloseTime = 1130;

# Set below to 'True' to allow for DST difference adjustment if you are setting
# windows up for a european instrument like the euro.
input EnableDSTAutoAdjust = {default "Yes", "No"};
input DSTOffsetHours = 1;

#==========================================================================
#  Figure out DST adjustment for diffence between USA and europe
#==========================================================================
#basically, if we are after the 2nd Sunday in March and before
#the last Sunday in March, we need to offset the Trading Windows by 1hr forward
#if we are after the last Sunday in Oct, until the 1st Sunday in Nov
# we need to offset the trading windows by 1hr backward...
def CurrentYear = GetYear();
def CurrentMonth = GetMonth();
def CurrentDOM = GetDayOfMonth(GetYYYYMMDD());

#What is the first day of the week for the 1st of this month?
def Day1DOW1 = GetDayOfWeek(CurrentYear * 10000 + CurrentMonth * 100 + 1);
def FirstSundayDOM1 = if Day1DOW1 < 7
    then 7 - Day1DOW1 + 1
    else 1;

def SecondSundayOfMonth = FirstSundayDOM1 + 7;
def isMarch = If (CurrentMonth == 3, 1, 0);
def SpringDSTShiftStart = If (isMarch and (SecondSundayOfMonth <= CurrentDOM), 1, 0);

#last sunday in march...
def SpringDSTShiftStop = If (isMarch and ((SecondSundayOfMonth + 14) > CurrentDOM), 1, 0);
def DoSpringShift = If (SpringDSTShiftStart and SpringDSTShiftStop and EnableDSTAutoAdjust, 1, 0);

def isOctober = If (CurrentMonth == 10, 1, 0);
def isNovember = If (CurrentMonth == 11, 1, 0);
def FallDSTShiftStart = If (isOctober and ((SecondSundayOfMonth + 14) <= CurrentDOM), 1, 0);
def FallDSTShiftStop = If (isNovember and FirstSundayDOM1 > CurrentDOM, 1, 0);
def DoFallShift = If (FallDSTShiftStart or FallDSTShiftStop and EnableDSTAutoAdjust, 1, 0);

def isToday = If(GetDay() == GetLastDay(), 1, 0);

#PITA.  SecondsTillTime only takes constants...  Need to manually adjust for DST if it's enabled.
def DSTAdjust = If (DoSpringShift, DSTOffsetHours * 3600, If (DoFallShift, -DSTOffsetHours * 3600, 0));


def TradingOpenTime1 = If((SecondsTillTime(TradingOpen1) + DSTAdjust > 0), 0, 1);
def TradingCloseTime1 = If((SecondsTillTime(TradingClose1) + DSTAdjust > 0), 0, 1);
def TradingWindow1 = If(TradingOpenTime1 and !TradingCloseTime1, 1, 0);

def TradingOpenTime2 = If((SecondsTillTime(TradingOpen2) + DSTAdjust > 0), 0, 1);
def TradingCloseTime2 = If((SecondsTillTime(TradingClose2) + DSTAdjust > 0), 0, 1);
def TradingWindow2 = If(TradingOpenTime2 and !TradingCloseTime2, 1, 0);


AddVerticalLine(TradingWindow1 and TradingWindow1[1] == 0, "TradingOpen 1" , Color.GREEN, Curve.SHORT_DASH);
AddVerticalLine(TradingWindow1 == 0 and TradingWindow1[1], "TradingClose 1" , Color.RED, Curve.SHORT_DASH);

AddVerticalLine(TradingWindow2 and TradingWindow2[1] == 0, "TradingOpen 2" , Color.GREEN, Curve.SHORT_DASH);
AddVerticalLine(TradingWindow2 == 0 and TradingWindow2[1], "TradingClose 2" , Color.RED, Curve.SHORT_DASH);


#####-------------------------------------TESTER-----------------------------------------------------

def ITM = if timetest and TradingWindow1 == 0 and TradingWindow2 == 0 then 0 else if (Up[expiry] and  close[0] > close[expiry]) or (Down[expiry] and close[0] < close[expiry]) or (secondcandle and Up[2] and close[1] < close[2] and close > close[1]) or (secondcandle and Down[2] and close[1] > close[2] and close < close[1]) then 1 else 0;
def itmsum = TotalSum(ITM);

def OTM = if timetest and TradingWindow1 == 0 and TradingWindow2 == 0 then 0 else if (Up[expiry] and  close[0] < close[expiry]) or (Down[expiry] and close[0] > close[expiry]) or (secondcandle and Up[2] and close[1] < close[2] and close < close[1]) or (secondcandle and Down[2] and close[1] > close[2] and close > close[1]) then 1 else 0;
def otmsum = TotalSum(OTM);

def itmrate =  RoundUp((itmsum / (itmsum + otmsum) * 100), 2);
def label = 1;

AddLabel(label, Concat("ITM = ",  itmsum), Color.GREEN);
AddLabel(label, Concat("OTM = ", otmsum), Color.RED);
AddLabel(label, Concat("ITM RATE = %", itmrate), Color.WHITE);

#####---------Moneycount--------------------------------------------
def PL = invest*itmsum*rpi-invest*otmsum;
def PLColor = if PL > 0 then 6 else 5;

AddLabel(moneycount, Concat("PROFIT/LOSS = $", PL),GetColor(PLColor));
 

kikos

Старейшина
Регистрация
23.09.14
Сообщения
4,554
Реакции
6,126
kikos не предоставил никакой дополнительной информации.
у меня небыло времени прогнать его! но сделаю! просто очень много всего неуспеваю один ((((((((
 

Taim

Гений
Регистрация
18.04.14
Сообщения
951
Реакции
983
Taim не предоставил никакой дополнительной информации.
kikos, я бы прогнал, просто не представляю, как это сделать))
 

kikos

Старейшина
Регистрация
23.09.14
Сообщения
4,554
Реакции
6,126
kikos не предоставил никакой дополнительной информации.
Привет! а скажи может ли с этого что то хорошее получится (стрелочник)? если еще и соединить с тем что на твоем скрине.
Привет! Давай чёткии правила для входа! Стрелка к вильямсу на сочетание 5 готова! Теперь сиськи оба на пробитее и ли касанее так же и с вильямсом и с прайсом!
 
  • Like
Реакции: emo

kikos

Старейшина
Регистрация
23.09.14
Сообщения
4,554
Реакции
6,126
kikos не предоставил никакой дополнительной информации.

kikos

Старейшина
Регистрация
23.09.14
Сообщения
4,554
Реакции
6,126
kikos не предоставил никакой дополнительной информации.
Привет! Давай чёткии правила для входа! Стрелка к вильямсу на сочетание 5 готова! Теперь сиськи оба на пробитее и ли касанее так же и с вильямсом и с прайсом!
Да и косаемо вильямса меня интерисует такое как одновременное пробитее всех уровней? или достаточно того что все находятся в зоне перекупленности или перепроданности!
 
  • Like
Реакции: emo

shmotinm

Модератор
Регистрация
09.05.14
Сообщения
788
Реакции
774
shmotinm не предоставил никакой дополнительной информации.
А есть ли смысл прогона индюка по уровням Мюррея? Ведь они рисуют в реальном времени. А так грааль готов был бы. Ставишь экспирацию на 15 минут для ТФ м1 и м5 И все
 

Taim

Гений
Регистрация
18.04.14
Сообщения
951
Реакции
983
Taim не предоставил никакой дополнительной информации.
shmotinm, не знал, что они рисуют)) Вроде далеко не 100%)
 

shmotinm

Модератор
Регистрация
09.05.14
Сообщения
788
Реакции
774
shmotinm не предоставил никакой дополнительной информации.
Ну то что вин от 63 до 74% для меня был бы уже грааль при одних настройках на 4 парах и в среднем от 10 до 20 сигналов в день на каждой
 
Статус
Закрыто для дальнейших ответов.
Верх Низ