// © GainzAlgo //@version=5 indicator('GainzAlgo Pro', overlay=true, max_labels_count=500) candle_stability_index_param = input.float(0.5, 'Candle Stability Index', 0, 1, step=0.1, group='Technical', tooltip='Candle Stability Index measures the ratio between the body and the wicks of a candle. Higher - more stable.') rsi_index_param = input.int(50, 'RSI Index', 0, 100, group='Technical', tooltip='RSI Index measures how overbought/oversold is the market. Higher - more overbought/oversold.') candle_delta_length_param = input.int(5, 'Candle Delta Length', 3, group='Technical', tooltip='Candle Delta Length measures the period over how many candles the price increased/decreased. Higher - longer period.') disable_repeating_signals_param = input.bool(false, 'Disable Repeating Signals', group='Technical', tooltip='Removes repeating signals. Useful for removing clusters of signals and general clarity') GREEN = color.rgb(29, 255, 40) RED = color.rgb(255, 0, 0) TRANSPARENT = color.rgb(0, 0, 0, 100) label_size = input.string('normal', 'Label Size', options=['huge', 'large', 'normal', 'small', 'tiny'], group='Cosmetic') label_style = input.string('text bubble', 'Label Style', ['text bubble', 'triangle', 'arrow'], group='Cosmetic') buy_label_color = input(GREEN, 'BUY Label Color', inline='Highlight', group='Cosmetic') sell_label_color = input(RED, 'SELL Label Color', inline='Highlight', group='Cosmetic') label_text_color = input(color.white, 'Label Text Color', inline='Highlight', group='Cosmetic') stable_candle = math.abs(close - open) / ta.tr > candle_stability_index_param rsi = ta.rsi(close, 14) bullish_engulfing = close[1] < open[1] and close > open and close > open[1] rsi_below = rsi < rsi_index_param decrease_over = close < close[candle_delta_length_param] bull = bullish_engulfing and stable_candle and rsi_below and decrease_over and barstate.isconfirmed bearish_engulfing = close[1] > open[1] and close < open and close < open[1] rsi_above = rsi > 100 - rsi_index_param increase_over = close > close[candle_delta_length_param] bear = bearish_engulfing and stable_candle and rsi_above and increase_over and barstate.isconfirmed var last_signal = '' if bull and (disable_repeating_signals_param ? (last_signal != 'buy' ? true : na) : true) if label_style == 'text bubble' label.new(bull ? bar_index : na, low, 'BUY', color=buy_label_color, style=label.style_label_up, textcolor=label_text_color, size=label_size) else if label_style == 'triangle' label.new(bull ? bar_index : na, low, 'BUY', yloc=yloc.belowbar, color=buy_label_color, style=label.style_triangleup, textcolor=TRANSPARENT, size=label_size) else if label_style == 'arrow' label.new(bull ? bar_index : na, low, 'BUY', yloc=yloc.belowbar, color=buy_label_color, style=label.style_arrowup, textcolor=TRANSPARENT, size=label_size) last_signal := 'buy' if bear and (disable_repeating_signals_param ? (last_signal != 'sell' ? true : na) : true) if label_style == 'text bubble' label.new(bear ? bar_index : na, high, 'SELL', color=sell_label_color, style=label.style_label_down, textcolor=label_text_color, size=label_size) else if label_style == 'triangle' label.new(bear ? bar_index : na, high, 'SELL', yloc=yloc.abovebar, color=sell_label_color, style=label.style_triangledown, textcolor=TRANSPARENT, size=label_size) else if label_style == 'arrow' label.new(bear ? bar_index : na, high, 'SELL', yloc=yloc.abovebar, color=sell_label_color, style=label.style_arrowdown, textcolor=TRANSPARENT, size=label_size) last_signal := 'sell' alertcondition(bull, 'BUY Signals', 'New signal: BUY') alertcondition(bear, 'SELL Signals', 'New signal: SELL')
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}