This indicator will be used with mt2trading, a bridge for trading binary options which connects to the api of the broker in mt4 and iqoption. so it is very important that after the changes it can still work with mt2trading, and we will be using this indicator on smaller time frames such as m1 and m5, so the indicator has to be optimized to work on small timeframes 1) Color buffers: each object being printed on the chart will require a separate color buffer in the color inputs tab and has to be readable/connectable to mt2trading bridge without interruptions or delays 2) Inclusion of martingale function: I will need to include calculations for martingale steps (n=xx number user defined) and have the results displayed in a data window, explained further below and can be discussed more when needed. This is just for displaying data and not for working with the bridge, so it takes less time to manually check all combinations. So function to check for martingale on the next expiry which will just be the next bar, or martingale next signal b) Martingale step marker: a visual marker on the chart showing where the user defined number of matingale steps either succeeded or failed. So for example, user has set martingale at 3 steps so on top of the 3rd consecutive bar there will be number 3, in red if the martingale failed on that step or the number will be green if the martingale succeeded, this is only for if user chooses martingale next expiry, if user chooses martingale next signal then the number marker will be set on top of the signal where either the martingale steps either failed or succeeded c) Data window: results will be shown visually on the chart in a data window. I will provide you with more details on how the data window would look during the process of discussion d) New calculation for martingale will have to take into consideration the martingale steps as well. So for example a 2 step martingale would be 8 bars/trades win or loss e) Data window will include showing how many times the user defined number of martingale steps, like example user defined 3 steps, so how many times the 3 step failed and how many times it was successful. More details on how it will look in the data window will be provided in process 3) function that will let user specify that No signal will be printed if remaining time for current bar to close on any time frame is less than user specified number. example user specifies 5secs, only signal that appears within the 1st 5secs of the open of the new bar on any time frame will be printed, if a signal is about to appear after 5secs have elapsed, it will not be printed and so on. function should be for secs so for like 2min 15secs it will be 135secs. All other functions below should be in compliance with this step if turned on 4) When all conditions are met in the indicator for signal to appear, the signal will be withheld and will appear only under the following conditions if chosen a) when price has retraced by user defined number of pips xxxx.xx . example: on eurusd sell signal should appear at 1.1200, and user has defined price to retrace 20 pips, then when price has retraced to 1.12020 then only signal will appear. b) When price has retraced to open price level of signal bar (current bar the signal has appeared on) c) when price has retraced to open price level of previous bar( price level at which the previous bar closed) 4) Gap sizing for the arrows and martingale step marker 5) Audio alert, pop-up message including the pair, time frame, time (xx:xx:xx) and the the signal if it was buy or sell 6) Arrow shift function- by default the signal will always be on the bar being used for the calculation of the signal, and that is the signal bar( the 0 bar). I would like a shift arrow function that would let the user choose which bar the arrow should be printed on. So for example if user chooses 1, then the arrow would be on the bar preceding the 0 bar and would appear exactly on the open of the bar without delay, and so on. And if user chooses 1 or more, then the retracement function and time filter function will not be considered, they are only for the 0 bar