thinkorswim programming

Wow, really? What happened to your firms pledge of securing private conversations? Whenever you dislike something or feel the need to clarify you go out there and put in public domain private conversations with your clients? This is weird on so many levels. Care to clarify? Did this user consent to have his private conversations published to be seen by the rest of the world?

Hello everyone,

I'm Shawn from Patternsmart.com.

I think it's necessary to explain what really happened.

This person "watchdaride" requested our service at 2018-02-14 , the following is his original request, clearly "email" or "SMS" was never mentioned.

"i am coming from esignal so not sure what thinkorswim can do . Can you make an indicator that alerts when a candle changes to opposite from previous candle . SO when candle closes and the previous one was solid and this one is clear it will alert me with sound and text .see image attach . That is a esignal . but do want it for thinkorswim . How much would that cost ?"


After I sent him the code, he replied: "i am getting the alert sound but no text .In the alert should there a box for sms alert . email . See images ".


Then I replied to him: "Please check "How to setup email and SMS alerts in Thinkorswim TOS", it's a link from our website: http://www.patternsmart.com/cart/index.php?route=information/information&information_id=22 "


His reply: "i want a refund . Scripts can send out emails or text . thinkorswim told me that . And that was a request in the order but i am sure you know that . SO please credit back my paypal the $50 ."


My reply:"I already sent you the link of how to get sms/email alert from TOS.
I never said TOS cannot send sms/email alert, because TOS CAN DO THAT."


His reply:"Well tos help desk and 5 other people confirmed it . Scripts cannot send sms . So you're either a novice or a scammer . I will spread the word so you don't scam any one else "


I also sent him the thinkorswim official link of "How do I get alerts e-mailed to me?"
http://tlc.thinkorswim.com/center/faq/tools.html#q_019


Obviously his logic is inconstant, he didn't request "email" or "SMS" alert at the beginning, and used that as an excuse to charge back and defame us. But I still tried to help him to get the email alert even he didn't request, then he suddenly changed his mind since he confirmed TOS cannot send email alert which made me speechless (I have created many TOS scripts that send email alert for customers all over the world. Nobody ever had any problem.)


I was really confused about what he really wanted, to get my service done and charge back by using a ridiculous reason and slander us?


To "watchdaride", I think $50 is no big deal to either of us, if there was any misunderstanding I could still help you with your request.
 
I found a sample code that defines the HighestHigh and LowestLow withing a monthly period. It plots vertical lines that cross over these range lines. I need help to code the vertical lines to stay within the high and low lines. Is there a way to truncate these vertical lines to stay with this range?
Code:
declare upper;

input numdays    = 21; # added this as a variable rather than hard coded number so you can adjust it
input numMonths1 = 4;
input Show1 = yes;
input lineWeight = 3;
input extended_days = 21; #should be equal to or less than numdays

input Price = 2.5;
def barnumber = BarNumber();

def numBars1     = numdays * numMonths1;
def barNum       = if IsNaN( close ) then Double.NaN else BarNumber();
def lastBar     = HighestAll( barNum );
def startBar1    = if lastBar <= numBars1 then 1 else lastBar - numBars1;

def hData1       = If( barNum < startBar1, Double.NaN, high );
def lData1       = If( barNum < startBar1, Double.NaN, low );

# ===============================================================
#                Plotting Section
# ===============================================================

plot HighestHigh1 = If( Show1, HighestAll( hData1 ), Double.NaN );
plot LowestLow1   = If( Show1, LowestAll( lData1 ),  Double.NaN );

#===================[ Define Plot Appearences ]=====================
DefineGlobalColor( "H1", Color.VIOLET);
DefineGlobalColor( "L1", Color.PINK);

HighestHigh1.SetPaintingStrategy( PaintingStrategy.LINE );
HighestHigh1.SetLineWeight( lineWeight );
HighestHigh1.AssignValueColor( GlobalColor( "H1" ) );
HighestHigh1.HideBubble();

LowestLow1.SetPaintingStrategy( PaintingStrategy.LINE );
LowestLow1.SetLineWeight( lineWeight );
LowestLow1.AssignValueColor( GlobalColor( "L1" ) );
LowestLow1.HideBubble();

def months1   = Round( ( lastBar - startBar1 + 1 ) / 21, 0 );

# ===============================================================
#                Chart Bubbles
# ===============================================================
def BeginBarH = if barNum >= startBar1 and HighestAll(HighestHigh1) == high
                then  BarNumber() else BeginBarH[1];
def BeginBarL = if barNum >= startBar1 and HighestAll(LowestLow1) == low
                then  BarNumber() else  BeginBarL[1];
def BeginBar  = HighestAll(Min(BeginBarH, BeginBarL));

AddChartBubble( Show1 and barNum == BeginBar, HighestHigh1, Concat( "Highest High in ",  Concat( months1, Concat (" Months is ", HighestHigh1)) ), GlobalColor( "H1" ), yes );

AddChartBubble( Show1 and barNum == BeginBar, LowestLow1,   Concat( "Lowest Low in ",   Concat( months1, Concat (" Months is ", LowestLow1)) ), GlobalColor( "L1" ), no  );

# ===============================================================
#                Extended Dates
# ===============================================================

def begindate = if BarNumber() == BeginBar then GetYYYYMMDD() else begindate[1];
def endclose  = if BarNumber() == BeginBar + extended_days then close else endclose[1];
def enddate   = if BarNumber() == BeginBar + extended_days then GetYYYYMMDD() else enddate[1];

Plot line = if barnumber between BeginBar and BeginBar + extended_days then Price else double.nan;
line.SetLineWeight(5);

input showverticals = yes;
AddVerticalLine(showverticals && BarNumber() == BeginBar, "               " + AsPrice(GetYYYYMMDD()) + " " + AsDollars(close), Color.GREEN, Curve.FIRM);

AddVerticalLine(showverticals && BarNumber() == BeginBar + extended_days, "               " + AsPrice(GetYYYYMMDD()) + " " + AsDollars(close), Color.RED, Curve.FIRM);
 
Back
Top