def overview(): try: strategy_tester = driver.find_elements_by_xpath( "//*[@class='title-37voAVwR']")[3] active = strategy_tester.get_attribute('data-active') if active == 'false': strategy_tester.click() # time.sleep(.3) overview = driver.find_element_by_class_name( "report-tabs").find_elements_by_tag_name("li")[0] overview.click() else: overview = driver.find_element_by_class_name( "report-tabs").find_elements_by_tag_name("li")[0] overview.click() except (IndexError, NoSuchElementException, ElementNotInteractableException) as error: if error: strategy_tester = driver.find_elements_by_xpath( "//*[@class='title-37voAVwR']")[2] active = strategy_tester.get_attribute('data-active') if active == 'false': strategy_tester.click() # time.sleep(.3) overview = driver.find_element_by_class_name( "report-tabs").find_elements_by_tag_name("li")[0] overview.click() else: overview = driver.find_element_by_class_name( "report-tabs").find_elements_by_tag_name("li")[0] overview.click()
def both_inputs(stoploss_value, takeprofit_value, wait): wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@class='innerInput-21h1g6jU']"))) stoploss_input_box = driver.find_elements_by_xpath("//*[@class='innerInput-21h1g6jU']")[0] takeprofit_input_box = driver.find_elements_by_xpath("//*[@class='innerInput-21h1g6jU']")[1] stoploss_input_box.send_keys(Keys.BACK_SPACE + Keys.BACK_SPACE + Keys.BACK_SPACE + Keys.BACK_SPACE) stoploss_input_box.send_keys(str(stoploss_value)) takeprofit_input_box.send_keys(Keys.BACK_SPACE + Keys.BACK_SPACE + Keys.BACK_SPACE + Keys.BACK_SPACE) takeprofit_input_box.send_keys(str(takeprofit_value)) takeprofit_input_box.send_keys(Keys.ENTER) time.sleep(.5) ok_button = driver.find_element_by_name("submit") ok_button.click()
def strategy_tester(): """check if strategy tester tab is active if not click to open tab.""" strategy_tester = driver.find_elements_by_xpath( "//*[@class='title-1C5azoXt']")[2] active = strategy_tester.get_attribute('data-active') if active == 'false': strategy_tester.click()
def takeprofit_input(count, wait): wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@class='innerInput-21h1g6jU']"))) takeprofit_input_box = driver.find_elements_by_xpath("//*[@class='innerInput-21h1g6jU']")[1] takeprofit_input_box.send_keys(Keys.BACK_SPACE + Keys.BACK_SPACE + Keys.BACK_SPACE + Keys.BACK_SPACE) takeprofit_input_box.send_keys(str(count)) takeprofit_input_box.send_keys(Keys.ENTER) ok_button = driver.find_element_by_name("submit") ok_button.click()
def strategy_tester(): """check if strategy tester tab is active if not click to open tab.""" try: strategy_tester = driver.find_elements_by_xpath( "//*[@class='title-37voAVwR']")[3] active = strategy_tester.get_attribute('data-active') if active == 'false': strategy_tester.click() else: pass except (IndexError, NoSuchElementException, ElementNotInteractableException) as error: if error: strategy_tester = driver.find_elements_by_xpath( "//*[@class='title-37voAVwR']")[2] active = strategy_tester.get_attribute('data-active') if active == 'false': strategy_tester.click()
def list_of_trades(): strategy_tester = driver.find_elements_by_xpath("//*[@class='title-37voAVwR']")[2] active = strategy_tester.get_attribute('data-active') if active == 'false': strategy_tester.click() time.sleep(.3) list_of_trades = driver.find_element_by_class_name("report-tabs").find_elements_by_tag_name("li")[2] list_of_trades.click() else: list_of_trades = driver.find_element_by_class_name("report-tabs").find_elements_by_tag_name("li")[2] list_of_trades.click()
def performance_summary(): strategy_tester = driver.find_elements_by_xpath("//*[@class='title-37voAVwR']")[2] active = strategy_tester.get_attribute('data-active') if active == 'false': strategy_tester.click() # time.sleep(.3) performance_tab = driver.find_element_by_class_name("report-tabs").find_elements_by_tag_name("li")[1] performance_tab.click() else: performance_tab = driver.find_element_by_class_name("report-tabs").find_elements_by_tag_name("li")[1] performance_tab.click()
def overview(): strategy_tester = driver.find_elements_by_xpath("//*[@class='title-37voAVwR']")[2] active = strategy_tester.get_attribute('data-active') if active == 'false': strategy_tester.click() # time.sleep(.3) overview = driver.find_element_by_class_name("report-tabs").find_elements_by_tag_name("li")[0] overview.click() else: overview = driver.find_element_by_class_name("report-tabs").find_elements_by_tag_name("li")[0] overview.click()
def stoploss_input(count, wait): wait.until( EC.visibility_of_element_located( (By.XPATH, "//*[@class='innerInput-29Ku0bwF']"))) stoploss_input_box = driver.find_elements_by_xpath( "//*[@class='innerInput-29Ku0bwF']")[0] stoploss_input_box.send_keys(Keys.BACK_SPACE + Keys.BACK_SPACE + Keys.BACK_SPACE + Keys.BACK_SPACE) stoploss_input_box.send_keys(str(count)) stoploss_input_box.send_keys(Keys.ENTER) ok_button = driver.find_element_by_name("submit") ok_button.click()
def percent_profitable(): percent_profitable = driver.find_elements_by_xpath( "//*[@class='data-item']")[2].text.split("%\n Percent " "Profitable")[0] if float(percent_profitable) <= 30: print( colored(f"Percent Profitable: " + str(percent_profitable) + "%", 'red')) elif 49 >= float(percent_profitable) > 30: print( colored(f"Percent Profitable: " + str(percent_profitable) + "%", 'yellow')) else: print( colored(f"Percent Profitable: " + str(percent_profitable) + "%", 'green'))
def profit_factor(): profit_factor = driver.find_elements_by_xpath( "//*[@class='data-item']")[3].text.split("Profit Factor")[0] print(f"Profit Factor: " + str(profit_factor), end="")
def total_trades(): total_trades = driver.find_elements_by_xpath( "//*[@class='data-item']")[1].text.split("Total Closed Trades")[0] print(f"Total Trades: " + str(total_trades.replace(" ", "")), end="")
def avg_bars(): avg_bars = driver.find_elements_by_xpath( "//*[@class='data-item']")[6].text.split("Avg # Bars in Trades")[0] print(f"Average # Bars in Trades: " + str(avg_bars))