New to Coding, any help on a simple Williams R Buy at -80 and Sell at -20?

buzzmuff

New member
Hi,

I'm just trying to create a simple Buy request at -80 Williams R and sell at -20. The code i have below basically just buys at every candle and closes at every candle for some reason. input overSold = -80 and the buy to open references overSold so i would think it should only buy to open when it's at -80 but it's doing it every candle bar. Code below, thanks for the help!

screenshot of image here, wouldn't let me link image for some reason in post
https://ibb.co/DwpRcVw

I think i need a condition where the williams R crosses up through the -80 to Buy and a condition where it goes down below the -20 to sell.

Ruby:
#***StopLossPercent***
input percentGainGoal = 5;
input percentLossGoal = -2;
def percentChange = 100 * (close - EntryPrice()) / EntryPrice();

#***sets the trade amount to $1,000***
input tradeDollars = 1000;
def tradesize = Round (tradeDollars / close);

#*** Williams R %***
input length = 10;
input overBought = -20;
input overSold = -80;

def hh = Highest(high, length);
def ll = Lowest(low, length);
def result = if hh == ll then -100 else (hh - close) / (hh - ll) * (-100);

plot WR = if result > 0 then 0 else result;
WR.SetDefaultColor(GetColor(1));

plot Over_Sold = overSold;
Over_Sold.SetDefaultColor(GetColor(8));

plot Over_Bought = overBought;
Over_Bought.SetDefaultColor(GetColor(8));

#***StopLoss exit***

def exitBad = percentChange < percentLossGoal;

#****Sales******
AddOrder(OrderType.BUY_TO_OPEN, overSold, open[1], tradeSize, Color.CYAN, Color.CYAN);

AddOrder(OrderType.SELL_TO_CLOSE, overBought, open[1], tradeSize, Color.GREEN, Color.GREEN);

AddOrder(OrderType.SELL_TO_CLOSE, exitBad, open[1], tradeSize, Color.RED, Color.RED);
 
Last edited:

buzzmuff

New member
Figured it out, code below

Ruby:
#***StopLossPercent***
input percentGainGoal = 5;
input percentLossGoal = -2;
def percentChange = 100 * (close - EntryPrice()) / EntryPrice();

#***sets the trade amount to $1,000***
input tradeDollars = 1000;
def tradesize = Round (tradeDollars / close);

#*** Williams R %***
input length = 10;
input overBought = -20;
input overSold = -80;

def hh = Highest(high, length);
def ll = Lowest(low, length);
def result = if hh == ll then -100 else (hh - close) / (hh - ll) * (-100);

plot WR = if result > 0 then 0 else result;
WR.SetDefaultColor(GetColor(1));

plot Over_Sold = overSold;
Over_Sold.SetDefaultColor(GetColor(8));

plot Over_Bought = overBought;
Over_Bought.SetDefaultColor(GetColor(8));



#***BuySellStopexit***

def exitBad = percentChange < percentLossGoal;
def buy = wr crosses above overSold;
def sell = wr crosses below overBought;




#****Sales******
AddOrder(OrderType.BUY_TO_OPEN, buy, open[1], tradesize, Color.CYAN, Color.CYAN);

AddOrder(OrderType.SELL_TO_CLOSE, sell, open[1], tradesize, Color.GREEN, Color.GREEN);

AddOrder(OrderType.SELL_TO_CLOSE, exitBad, open[1], tradesize, Color.RED, Color.RED);
 

UYAREDUDE

New member
Figured it out, code below

Ruby:
#***StopLossPercent***
input percentGainGoal = 5;
input percentLossGoal = -2;
def percentChange = 100 * (close - EntryPrice()) / EntryPrice();

#***sets the trade amount to $1,000***
input tradeDollars = 1000;
def tradesize = Round (tradeDollars / close);

#*** Williams R %***
input length = 10;
input overBought = -20;
input overSold = -80;

def hh = Highest(high, length);
def ll = Lowest(low, length);
def result = if hh == ll then -100 else (hh - close) / (hh - ll) * (-100);

plot WR = if result > 0 then 0 else result;
WR.SetDefaultColor(GetColor(1));

plot Over_Sold = overSold;
Over_Sold.SetDefaultColor(GetColor(8));

plot Over_Bought = overBought;
Over_Bought.SetDefaultColor(GetColor(8));



#***BuySellStopexit***

def exitBad = percentChange < percentLossGoal;
def buy = wr crosses above overSold;
def sell = wr crosses below overBought;




#****Sales******
AddOrder(OrderType.BUY_TO_OPEN, buy, open[1], tradesize, Color.CYAN, Color.CYAN);

AddOrder(OrderType.SELL_TO_CLOSE, sell, open[1], tradesize, Color.GREEN, Color.GREEN);

AddOrder(OrderType.SELL_TO_CLOSE, exitBad, open[1], tradesize, Color.RED, Color.RED);
 

Similar threads

Top