"; return html; }, source: function(term, response){ $.getJSON(url, { q: term }, function(data){ var json = JSON.parse(data); response(json); }); }, onSelect: function(e, term, item){ if (typeof onSelectStockFn === "function") { var code = item.getAttribute('data-code'); var name = item.getAttribute('data-name'); onSelectStockFn(code, name); } }, }); } function onSelectStockFn(code){ var url = stock_overview_url.replace("12345", code); location.href = url; }
- Australia
- Canada
- Malaysia
- Singapore
United Kingdom
- United States
New Portfolio
You should check in on some of those fields below.
PORTFOLIO: maintain record of your purchases, sales and cash transactions.
WATCHLIST: track a list of stocks to "watch" or follow.
Name
Description
Tag
Confirmation
Click Confirm to delete this list.
NOTION VTEC BERHAD - WARRANTS D 2024/2029
KLSE: NOTION-WD (0083WD)
You're accessing 15 mins delay data. Turn on live stream now to enjoy real-time data!
Share this:
Last Price
0.61
Today's Change
-0.005 (0.81%)
Day's Change
0.60 - 0.66
Trading Volume
8,404,700
- Overview
- Related Warrants
- Prices
- Stock Chart
- Latest Prices
- Discussions
- Market Buzz
- Historical Data
Create Alert
You are setting up a price and signal alert with 15 minutes delay. Click here to enjoy real-time price and signal alerts.
Stock
Alert Type
Current Price
Value (RM)
Signal
Signal Duration
Signal Type
Frequency
Expiration Date
Alert Actions
Last Trigger Date:
-
Alert Name
Note
"; return html; }, source: function(term, response){ $.getJSON(url, { q: term }, function(data){ var json = JSON.parse(data); response(json); }); }, onSelect: function(e, term, item){ var code = item.getAttribute('data-code'); var name = item.getAttribute('data-name'); var alertName = name + " (" + code + ")"; $(inputElem).closest("div").find("#stock-alert-name").val(alertName); $(inputElem).closest("div").find("#stock-alert-code").val(code); retrieveCurrentPrice(code, $(inputElem).closest(".card-body")); setAlertName(); } }); $(inputElem).on("input", function() { $("#stock-alert-code").val(""); $("#stock-alert-name").val(""); $("#curr-price-message").html(""); }); $(inputElem).blur(function() { var td = $(this).closest("div"); var value = td.find("#stock-alert-code").val(); if(!value){ $(inputElem).val(""); $("#stock-alert-code").val(""); $("#stock-alert-name").val(""); $("#curr-price-message").html(""); } }); } function retrieveCurrentPrice(stockCode, elem){ if(!elem || elem.length == 0){ elem = $("#price-alert-modal"); } elem.find("#curr-price-loading").show(); elem.find("#curr-price-message").html("Retrieving Current Price."); if(stockCode){ $.ajax({ type: "POST", url: apiRoot + "/pricetarget/ret-curr-price", async: true, contentType: "application/json;charset=UTF-8", data: JSON.stringify({ "stockCode": stockCode, "showPricePercentage": true, "showColor": true }), success: function(data, textStatus, xhr) { if("E" == data){ elem.find("#curr-price-message").html("Error: Current Price not found."); }else{ elem.find("#curr-price-message").html(data); } elem.find("#curr-price-loading").hide(); }, error: function(xhr, status, error) { var msg = getHttpErrorMsg(xhr); if (msg != "") { elem.find("#curr-price-message").html("Error: " + msg); } $("#curr-price-loading").hide(); } }); } } function setAlertName(){ var selected = $("#price-alert-modal").is(":visible") ? $("#price-alert-modal") : $(".detail-div:visible"); var display_name = selected.find("#price-alert-type-select").find("option:selected").attr("data-name"); if(display_name){ var signal = selected.find("#signal-select").find("option:selected").attr("data-name"); signal = isEmptyString(signal) ? "" : signal; var duration = selected.find("#duration-select").find("option:selected").attr("data-name"); duration = isEmptyString(duration) ? "" : duration; var signal_type = selected.find("#signal-type-select").find("option:selected").attr("data-name"); signal_type = isEmptyString(signal_type) ? "" : signal_type; display_name = display_name.replace("$\{stock\}", selected.find("#stock-alert-name").val()); display_name = display_name.replace("$\{price\}", selected.find("#price-alert-value-input").val()); display_name = display_name.replace("$\{signal\}", signal); display_name = display_name.replace("$\{duration\}", duration); display_name = display_name.replace("$\{signal_type\}", signal_type); } selected.find("#price-alert-name-input").val(display_name); checkEnteredValue(); } function checkEnteredValue(elem){ var selected = $("#price-alert-modal").is(":visible") ? $("#price-alert-modal") : $(".detail-div:visible"); var selected_field = selected.find("#price-alert-value-input"); var valid = true; var entered_value = Number(selected_field.val()); var stock_price = Number(selected.find("#curr-price-label").html()); var type_field = selected.find("#price-alert-type-select"); var selected_type = selected.find("#price-alert-type-select").find("option:selected").val(); var selected_signal = selected.find("#signal-select"); var signal = selected.find("#signal-select").find("option:selected").attr("data-sysname"); var duration_field = selected.find("#duration-select"); var selected_duration = selected.find("#duration-select").find("option:selected").html(); var duration = selected.find("#duration-select").find("option:selected").attr("data-sysname"); if(elem){ selected_field = elem.find("#price-alert-value-input"); entered_value = Number(elem.find("#price-alert-value-input").val()); stock_price = Number(elem.find("#curr-price-label").html()); type_field = elem.find("#price-alert-type-select"); selected_type = elem.find("#price-alert-type-select").find("option:selected").val(); selected_signal = elem.find("#signal-select"); signal = elem.find("#signal-select").find("option:selected").attr("data-sysname"); duration_field = elem.find("#duration-select"); selected_duration = elem.find("#duration-select").find("option:selected").html(); duration = elem.find("#duration-select").find("option:selected").attr("data-sysname"); } if(cd_above_id == selected_type){ if(entered_value < stock_price){ valid = false; showErrorOnField(selected_field, "Value must greater than " + stock_price); } if(activePriceCount == 0) { valid = false; var reachedLimitMsg = "Oops, your account is not eligible for Price Alert."; reachedLimitMsg += " Find Out Why."; showErrorOnField(type_field, reachedLimitMsg); } if(usedPriceCount >= activePriceCount) { valid = false; var reachedLimitMsg = "Oops, your account have reached the limit of active Price Alert."; reachedLimitMsg += " Find Out Why."; showErrorOnField(type_field, reachedLimitMsg); } } else if(cd_below_id == selected_type){ if(entered_value > stock_price){ valid = false; showErrorOnField(selected_field, "Value must lower than " + stock_price); } if(activePriceCount == 0) { valid = false; var reachedLimitMsg = "Oops, your account is not eligible for Price Alert."; reachedLimitMsg += " Find Out Why."; showErrorOnField(type_field, reachedLimitMsg); } else if(usedPriceCount >= activePriceCount) { valid = false; var reachedLimitMsg = "Oops, your account have reached the limit of active Price Alert."; reachedLimitMsg += " Find Out Why."; showErrorOnField(type_field, reachedLimitMsg); } } else if(cd_signal_id == selected_type){ var notEligibleForStrategyMsg = "Oops, your account is not eligible for this strategy."; reachedLimitMsg += " Find Out Why."; if(signal == "OBV") { showErrorOnField(selected_signal, notEligibleForStrategyMsg); valid = false; } if(signal == "VOLUME BREAKOUT") { showErrorOnField(selected_signal, notEligibleForStrategyMsg); valid = false; } if(signal == "TURTLE SYSTEM 20" || signal == "TURTLE SYSTEM 55") { showErrorOnField(selected_signal, notEligibleForStrategyMsg); valid = false; } if(activeMqSignalCount == 0) { valid = false; var reachedLimitMsg = "Oops, your account is not eligible for MQ Signal Alert."; reachedLimitMsg += " Find Out Why."; showErrorOnField(type_field, reachedLimitMsg); if (typeof showSignalModal === "function") { showSignalModal(); } } else if(usedMqSignalCount >= activeMqSignalCount) { valid = false; var reachedLimitMsg = "Oops, your account have reached the limit of active MQ Signal Alert."; reachedLimitMsg += " Find Out Why."; showErrorOnField(type_field, reachedLimitMsg); if (typeof showSignalModal === "function") { showSignalModal(); } } var validDuration = true; if(chartDuration == "Weekly" && duration != "Weekly") { validDuration = false; } else if(chartDuration == "Daily" && (duration == "Hourly" || duration == "30 Mins" || duration == "10 Mins" || duration == "5 Mins")) { validDuration = false; } else if(chartDuration == "Hourly" && (duration == "30 Mins" || duration == "10 Mins" || duration == "5 Mins")) { validDuration = false; } else if(chartDuration == "30 Mins" && (duration == "10 Mins" || duration == "5 Mins")) { validDuration = false; } else if(chartDuration == "10 Mins" && (duration == "5 Mins")) { validDuration = false; } if(!validDuration) { valid = false; var reachedLimitMsg = "Oops, your account only can use Signal Duration up to " + chartDuration + "."; reachedLimitMsg += " Find Out Why."; showErrorOnField(duration_field, reachedLimitMsg); } } valid &= validateDatePeriod("price-alert-expiration-date-input", signalValidityMonth); return valid; } function validateDatePeriod(date_to_id, month_interval){ //set today date for Date To var date_to = $("#" + date_to_id).val(); if(isEmptyString(date_to)) return true; var date_to_obj = checkField($("#" + date_to_id).get(), true); var valid = date_to_obj.isValid(); if(!valid) return false; //date period field are mandatory var from_date_moment = moment("2024-05-18","YYYY-MM-DD"); var to_date_moment = moment(date_to,"YYYY-MM-DD"); //from date cannot greater than to date if(from_date_moment > to_date_moment){ showTbModalMesg(tbmesgtypeError, "Invalid Date Period.", null, true); return false; } if(month_interval == null) return true; //set today date for Date From month_interval = !isNaN(month_interval) ? Number(month_interval) : 0; //difference month var diff_month = to_date_moment.diff(from_date_moment, 'months', true); if(diff_month > month_interval){ var datePeriodWithinMsg = "Date Period must be within " + month_interval + " months."; datePeriodWithinMsg += " Find Out Why."; showErrorOnField($("#" + date_to_id), datePeriodWithinMsg); return false; } return true; } function toggleAlertTypeField(elem) { var selected_div = $(elem).closest(".card-body"); if(!selected_div || selected_div.length == 0){ selected_div = $("#price-alert-modal"); } var alert_type = checkField(selected_div.find("#price-alert-type-select").get()); var alert_type_signal = false; if(cd_signal_id == alert_type.getValue()) { alert_type_signal = true; } if(alert_type_signal) { $(".type-signal").show(); $(".type-price").hide(); selected_div.find("#price-alert-value-input").val(""); } else { $(".type-signal").hide(); $(".type-price").show(); selected_div.find("#signal-select").val(""); selected_div.find("#duration-select").val(""); selected_div.find("#signal-type-select").val(""); } } function savePriceAlert(elem){ toggleSaveButton(elem, true); var selected_div = $(elem).closest(".card-body"); if(!selected_div || selected_div.length == 0){ selected_div = $("#price-alert-modal"); } var record_id = selected_div.find("#price-alert-record-id").val(); var stock_name = checkField(selected_div.find(".stock-input").get(), true); var alert_type = checkField(selected_div.find("#price-alert-type-select").get(), true); var alert_type_signal = false; if(cd_signal_id == alert_type.getValue()) { alert_type_signal = true; } var value = checkField(selected_div.find("#price-alert-value-input").get(), !alert_type_signal); var formatted_value = Math.round(Number(value.getValue()) * 10000); var signal = checkField(selected_div.find("#signal-select").get(), alert_type_signal); var duration = checkField(selected_div.find("#duration-select").get(), alert_type_signal); var signal_type = checkField(selected_div.find("#signal-type-select").get(), alert_type_signal); var ori_frequency = selected_div.find('#frequency-checkbox').attr("data-orig"); var frequency = checkField(selected_div.find("#price-alert-frequency-select").get(), true); var expired_date = checkField(selected_div.find("#price-alert-expiration-date-input").get(), true); var ori_alert_action = selected_div.find('#alert-action-label').attr("data-orig"); var alert_action = ""; selected_div.find(".alert-actions:checked").each(function(){ alert_action += $(this).val() + ","; }); if(alert_action){ alert_action = alert_action.slice(0, -1); } var alert_name = checkField(selected_div.find("#price-alert-name-input").get(), true); var note = checkField(selected_div.find("#price-alert-note-input").get()); var valid = stock_name.isValid() && alert_type.isValid() && value.isValid() && expired_date.isValid() && alert_name.isValid() && frequency.isValid() && signal.isValid() && duration.isValid() && signal_type.isValid(); valid &= checkEnteredValue(selected_div); var change = getAllValue(selected_div) != price_alert_orig_value; if (valid && change){ $.ajax({ type: "POST", url: apiRoot + "/pricealert/save", async: true, contentType: "application/json;charset=UTF-8", data: JSON.stringify({ id: record_id, stockCode: selected_div.find("#stock-alert-code").val(), value: formatted_value, signalId: signal.getValue(), durationId: duration.getValue(), signalTypeId: signal_type.getValue(), expiredDate: expired_date.getValue(), alertName: alert_name.getValue(), note: note.getValue(), alertTypeId: alert_type.getValue(), alertActionIds: alert_action, frequencyId: frequency.getValue(), userid: "", }), success: function(data, textStatus, xhr) { if(record_id != "0"){ showPgTopToast("Alert updated successfully."); }else{ showPgTopToast("Alert added successfully."); } setTimeout(function() { toggleSaveButton(elem, false); if(record_id != "0"){ if (typeof callbackAfterUpdate === "function") { callbackAfterUpdate(data, elem); } }else{ if (typeof callbackAfterCreation === "function") { callbackAfterCreation(); } } }, 1000); }, error: function(xhr, status, error) { var msg = getHttpErrorMsg(xhr); if (msg != "") { toggleSaveButton(elem, false); showPgTopToast("Failed to create Alert.
" + msg); } } }); }else{ toggleSaveButton(elem, false); } if(valid && !change){ showPgTopToast("No change."); } } function deletePriceAlertFromModal(){ showStockConfirmModal("Click Confirm to delete this alert."); $("#stock-confirm-btn").unbind('click'); $("#stock-confirm-btn").click(function() { deletePriceAlert($("#price-alert-record-id").val()); }); } function deletePriceAlert(id){ $.ajax({ type: "POST", url: apiRoot + "/pricealert/delete/" + id, async: true, success: function(data, textStatus, xhr) { showPgTopToast("Alert deleted successfully."); setTimeout(function() { if($("#dttable-price-alert").is(":visible")){ dttable.row(curr_selected_tr).remove().draw(); $("#price-alert-log-table tbody").html(""); } hideStockConfirmModal(); hidePriceAlertModal(); }, 1000); }, error: function(xhr, status, error) { var msg = getHttpErrorMsg(xhr); if (msg != "") { toggleSaveButton(elem, false); showPgTopToast("Failed to delete Alert.
" + msg); } } }); } function toggleSaveButton(selected, show_saving){ if(!selected) return; if(show_saving){ $(selected).attr("disabled", true); $(selected).find(".fa-save").hide(); $(selected).find(".fa-spinner").show(); }else{ $(selected).attr("disabled", false); $(selected).find(".fa-save").show(); $(selected).find(".fa-spinner").hide(); } } function addPriceAlertCount (){ usedPriceCount++; } function addMqSignalAlertCount (){ usedMqSignalCount++; } function minusPriceAlertCount (){ usedPriceCount--; } function minusMqSignalAlertCount (){ usedMqSignalCount--; }
Corporate Figure or Shareholder
Name | Role |
---|
Discussions
Be the first to like this. Showing 0 of 0 comments
Post a Comment
People who like this
Featured Posts
Moomoo MY
Don't Miss Out: Up to USD1,000 in Our Lucky Draw!
Latest Videos
MQ Market Updates - 17 May 2024
MQ Trader
Share this:
MQ Trading Signals
Time
Signal
Duration
Type
No trading signals available.
More Trading Signals
Apps
MQ Chat
Send individual or group chats with anyone on i3investor
MQ Trader
Earn MQ Points while trading with MQ Trader
Earn side income from Affiliate Program
MQdemy
Online learning and teaching marketplace
Top Articles
1
CEO Morning Brief
Top Glove Hits Limit Up, Glove Stocks Witness Two-year High
2
save malaysia!
Malaysia set to become hub for AI development and innovation
3
save malaysia!
Malaysian Bar duty-bound to seek review of Najib’s pardon, says president
4
save malaysia!
In Pahang, Musang King orchard operator charged with unlawful occupation of government land
5
save malaysia!
Osram's exit from RM2bil Kedah project unlikely to have major impact on PNB, EPF and KWAP
6
THE INVESTMENT APPROACH OF CALVIN TAN
7
save malaysia!
NETR initiatives make TNB's earnings prospect attractive: CIMB Securities
8
南洋行家论股
热门股:马建屋 上挑92仙
Hot Stocks Today >
#
Stock
Score
1
TASCO
TASCO BERHAD
1000
2
DNEX
DAGANG NEXCHANGE BERHAD
497
3
MPI
MALAYSIAN PACIFIC INDUSTRIES
483
4
MBSB
MALAYSIA BUILDING SOCIETY BHD
422
5
HLIND
HONG LEONG INDUSTRIES BHD
383
6
PTRANS
PERAK TRANSIT BERHAD
347
7
YTLPOWR
YTL POWER INTERNATIONAL BHD
321
8
TOPGLOV
TOP GLOVE CORPORATION BHD
306
9
MAYBANK
MALAYAN BANKING BHD
281
10
MYEG
MY E.G. SERVICES BHD
273
Daily Stocks
- Active
- Gainers
- Losers
Stock Name
Last
Change
Volume
INGENIEU-WB
0.02
+0.015
697,352,800
HSI-CV8
0.165
+0.015
394,105,600
INGENIEU
0.095
+0.02
355,391,100
HSI-HUZ
0.18
-0.025
353,012,500
DNEX
0.44
+0.04
184,010,000
HSI-HU6
0.065
-0.005
158,836,600
INIX-OR
0.02
0.00
141,839,900
REVENUE
0.225
-0.005
115,917,200
TOPGLOV
1.20
0.00
113,307,400
DSONIC
0.525
+0.05
112,593,800
More active Stocks
Stock Name
Last
Change
Volume
MPI
36.60
+3.10
911,700
ALLIANZ
23.38
+1.30
93,800
ALLIANZ-PA
24.00
+1.10
12,900
HEIM
25.60
+0.84
514,800
DKSH
5.28
+0.27
512,600
GCB
3.65
+0.26
8,275,600
DLADY
33.00
+0.26
17,900
HLIND
11.08
+0.24
1,187,400
HUMEIND
3.46
+0.23
2,835,500
YTLPOWR
5.39
+0.21
27,494,700
More gainer Stocks
Stock Name
Last
Change
Volume
UTDPLT
25.84
-0.36
191,300
PANAMY
19.48
-0.22
72,700
ORIENT
6.97
-0.18
1,220,900
AJI
15.94
-0.18
275,700
PMETAL
5.20
-0.16
8,730,600
KLK
22.40
-0.12
933,500
KUAISHO-C17
0.08
-0.12
58,800
HTPADU
2.41
-0.11
2,460,400
IOICORP-C58
0.04
-0.11
400,000
PARAGON
3.40
-0.10
88,000
More loser Stocks
Featured Advertisers / Partners
Books Review >
Ride The Bull Short The Bear
CS Tan
4.9 / 5.0
This book is the result of the author's many years of experience and observation throughout his 26 years in the stockbroking industry. It was written for general public to learn to invest based on facts and not on fantasies or hearsay....
Read More