'https://chart4.nscript.com:9009/?Activity=GenGetData', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 15, CURLOPT_CONNECTTIMEOUT=>15, CURLOPT_FOLLOWLOCATION => true, CURLOPT_SSL_VERIFYPEER=>false, CURLOPT_SSL_VERIFYHOST=>false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_POSTFIELDS =>$query, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); return json_decode($response,true); } $response_data = array('status'=>false,'data'=>[]); $time=time()-315532800; if(isset($_REQUEST["ExpiryData"],$_REQUEST["Segment"],$_REQUEST["OF"]) && $_REQUEST["ExpiryData"]!="" && $_REQUEST["Segment"]!="" && $_REQUEST["OF"]!=""){ if($_REQUEST["Segment"]=="Derivatives"){ $results = $_db->query('SELECT DisplayExpiryDate AS "Date" FROM Contracts WHERE NCNSymbol="NIFTY" AND NCNInstrumentName LIKE "'.$_REQUEST["OF"].'%" AND NCNExpiryDate>'.$time.' ORDER BY NCNExpiryDate ASC'); }else if($_REQUEST["Segment"]=="Currency"){ $results = $_db->query('SELECT NCCDisplayExpiryDate AS "Date" FROM NseCurrencyContracts WHERE NCCSYMBOL="USDINR" AND NCCINSTRUMENT="'.$_REQUEST["OF"].'" AND NCCEXPIRYDATE>'.$time.' ORDER BY NCCEXPIRYDATE ASC'); }else if($_REQUEST["Segment"]=="Commodity"){ $results = $_db->query('SELECT MCDisplayExpiryDate AS "Date" FROM MCXContracts WHERE MCContractCode="GOLD" AND MCInstrumentName="'.$_REQUEST["OF"].'" AND MCExpiryDate>'.time().' ORDER BY MCExpiryDate ASC'); }else{ $results=array(); } $expiry_data=array(); while ($row_sec = $results->fetchArray(SQLITE3_ASSOC)) { $date=date("M Y",strtotime($row_sec["Date"])); if(!in_array($date,$expiry_data) && count($expiry_data)<3){ array_push($expiry_data,$date); } } echo json_encode($expiry_data,true);exit; } if(isset($_REQUEST["Activity"],$_REQUEST["Type"]) && $_REQUEST["Activity"]!="" && $_REQUEST["Type"]!=""){ $Activity=$_REQUEST["Activity"]; $Type=$_REQUEST["Type"]; $Nosymbols=isset($_REQUEST["Nosymbols"])?$_REQUEST["Nosymbols"]:"50"; if($Type=="Equities" && isset($_REQUEST["indices_name"],$_REQUEST["Exchange"]) && $_REQUEST["indices_name"]!=""){ $indices_name=$_REQUEST["indices_name"]; $Exchange=$_REQUEST["Exchange"]; $isn_no_list=array(); if($indices_name!="All"){ $_db_ind = new SQLite3('INDICES.db'); $result = $_db_ind->query("SELECT * FROM ".$indices_name); while($row1 = $result->fetchArray(SQLITE3_ASSOC)) { $isn_no_list[]= '"'.$row1[$Exchange=="NSE"?"ISIN Code":"ISIN No."].'"' ; } } $where=" AND PriceIndicator>0 "; $order_by=" PriceIndicator DESC"; if($Activity=="TopGainers"){ $where = " AND PriceIndicator>0"; $order_by=" PriceIndicator DESC"; }else if($Activity=="TopLosers"){ $where = " AND PriceIndicator<0"; $order_by=" PriceIndicator ASC"; }else if($Activity=="TopbyValue"){ $where=""; $order_by=" (AveragePrice*volume) DESC"; }else if($Activity=="TopbyVolume"){ $where=""; $order_by=" volume DESC"; }else if($Activity=="OnlyBuyers"){ $where = " AND totalbuyVolume>0 AND totalsellVolume=0 "; $order_by=" totalbuyVolume ASC"; }else if($Activity=="OnlySellers"){ $where = " AND totalbuyVolume=0 AND totalsellVolume>0 "; $order_by=" totalsellVolume ASC"; }else if($Activity=="52-WHigh"){ $order_by=" WeekHigh52 DESC"; }else if($Activity=="52-WLow"){ $order_by=" WeekLow52 DESC"; } $where .=" AND volume>0 AND Active=1 AND OptionType='EQ' "; $isin_data=implode(',',$isn_no_list); $query='SELECT * FROM SymbolMasterInfo where stockname LIKE "NSE_EQ_%" '.$where.' AND ISIN IN ('.$isin_data.') ORDER BY'.$order_by.' LIMIT '.$Nosymbols; if($Activity=="OnlyBuyers" || $Activity=="OnlySellers" || $indices_name=="All"){ $query='SELECT * FROM SymbolMasterInfo where ExchSegment="'.$Exchange.'" AND stockname LIKE "NSE_EQ_%" '.$where.' ORDER BY'.$order_by.' LIMIT '.$Nosymbols; } $symbols_info = curl_call($query); $response = array('status'=>true,'data'=>$symbols_info,"Activity"=>$_REQUEST["Activity"],"Type"=>$_REQUEST["Type"]); echo json_encode($response,true); exit; } else if($Type=="Derivatives" && isset($_REQUEST["OF"]) && $_REQUEST["OF"]!=""){ $result_dataset=array(); $where=" AND PriceIndicator>0"; $order_by=" PriceIndicator DESC"; if($Activity=="TopGainers"){ $where = " AND PriceIndicator>0"; $order_by=" PriceIndicator DESC"; }else if($Activity=="TopLosers"){ $where = " AND PriceIndicator<0"; $order_by=" PriceIndicator ASC"; }else if($Activity=="TopbyValue"){ $where=""; $order_by=" (AveragePrice*volume) DESC"; }else if($Activity=="TopbyVolume"){ $where=""; $order_by=" volume DESC"; }else if($Activity=="OIGainers"){ $where = " AND openintrestclose <>0 and openintrest <> 0 "; $order_by=" ((openintrestclose-openintrest)/(openintrestclose/100)) DESC"; }else if($Activity=="OILosers"){ $where = " AND openintrestclose <>0 and openintrest <> 0 "; $order_by=" ((openintrestclose-openintrest)/(openintrestclose/100)) ASC"; } $where .=" AND volume>0 AND openintrest>0 AND Active=1"; $current_time=strtotime("now"); if(isset($_REQUEST["Expiry"]) && $_REQUEST["Expiry"]!=""){ $from_time=strtotime("01 ".$_REQUEST["Expiry"]." 00:00:00"); $to_time=strtotime("31 ".$_REQUEST["Expiry"]." 23:59:59"); $where .=" AND (ExpiryData BETWEEN $from_time AND $to_time) "; $query='SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY BaseSymbol ORDER BY '.$order_by.') AS rank FROM SymbolMasterInfo WHERE stockname LIKE "NSE_EQD_%" AND ExpiryData>'.$current_time.' AND InstrumentType LIKE "'.$_REQUEST["OF"].'%" '.$where.' ) AS ranked_marks WHERE rank <= 5'; $symbols_info = curl_call($query); foreach($symbols_info as $symbol_data){ $symbol_data["ExpiryData"]=date("d M Y",$symbol_data["ExpiryData"]); if(isset($result_dataset[$symbol_data["BaseSymbol"]])){ $result_dataset[$symbol_data["BaseSymbol"]]["sub"][]=$symbol_data; }else{ $result_dataset[$symbol_data["BaseSymbol"]]=$symbol_data; } } }else{ $query='SELECT * FROM SymbolMasterInfo where stockname LIKE "NSE_EQD_%" AND ExpiryData>'.$current_time.' AND InstrumentType LIKE "'.$_REQUEST["OF"].'%" '.$where.' ORDER BY '.$order_by.' LIMIT 50'; $result_dataset = curl_call($query); } $response = array('status'=>true,'data'=>$result_dataset,"Activity"=>$_REQUEST["Activity"],"Type"=>$_REQUEST["Type"]); echo json_encode($response,true); exit; } else if($Type=="Currency" && isset($_REQUEST["OF"]) && $_REQUEST["OF"]!=""){ $result_dataset=array(); $where = " AND PriceIndicator>0"; $order_by=" PriceIndicator DESC"; if($Activity=="TopGainers"){ $where = " AND PriceIndicator>0"; $order_by=" PriceIndicator DESC"; }else if($Activity=="TopLosers"){ $where = " AND PriceIndicator<0"; $order_by=" PriceIndicator ASC"; }else if($Activity=="TopbyValue"){ $where=""; $order_by=" (AveragePrice*volume) DESC"; }else if($Activity=="TopbyVolume"){ $where=""; $order_by=" volume DESC"; } $current_time=strtotime("now"); if(isset($_REQUEST["Expiry"]) && $_REQUEST["Expiry"]!=""){ $from_time=strtotime("01 ".$_REQUEST["Expiry"]." 00:00:00"); $to_time=strtotime("31 ".$_REQUEST["Expiry"]." 23:59:59"); $where .=" AND (ExpiryData BETWEEN $from_time AND $to_time) "; } $query='SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY BaseSymbol ORDER BY '.$order_by.') AS rank FROM SymbolMasterInfo where Active=1 AND stockname LIKE "NSE_CUR_%" AND LTP>0 AND ExpiryData>'.$current_time.' AND InstrumentType="'.$_REQUEST["OF"].'" '.$where.' ) AS ranked_marks WHERE rank <= 5'; $symbols_info = curl_call($query); foreach($symbols_info as $symbol_data){ $symbol_data["ExpiryData"]=date("d M Y",$symbol_data["ExpiryData"]); if(isset($result_dataset[$symbol_data["BaseSymbol"]])){ $result_dataset[$symbol_data["BaseSymbol"]]["sub"][]=$symbol_data; }else{ $result_dataset[$symbol_data["BaseSymbol"]]=$symbol_data; } } $response = array('status'=>true,'data'=>$result_dataset,"Activity"=>$_REQUEST["Activity"],"Type"=>$_REQUEST["Type"]); echo json_encode($response,true); exit; } else if($Type=="Commodity" && isset($_REQUEST["OF"]) && $_REQUEST["OF"]!=""){ $result_dataset=array(); $where = " AND PriceIndicator>0"; $order_by=" PriceIndicator DESC"; if($Activity=="TopGainers"){ $where = " AND PriceIndicator>0"; $order_by=" PriceIndicator DESC"; }else if($Activity=="TopLosers"){ $where = " AND PriceIndicator<0"; $order_by=" PriceIndicator ASC"; }else if($Activity=="TopbyValue"){ $where=""; $order_by=" (AveragePrice*volume) DESC"; }else if($Activity=="TopbyVolume"){ $where=""; $order_by=" volume DESC"; } $where .=" AND volume>0 AND Active=1"; $current_time=strtotime("now"); if(isset($_REQUEST["Expiry"]) && $_REQUEST["Expiry"]!=""){ $from_time=strtotime("01 ".$_REQUEST["Expiry"]." 00:00:00"); $to_time=strtotime("31 ".$_REQUEST["Expiry"]." 23:59:59"); $where .=" AND (ExpiryData BETWEEN $from_time AND $to_time) "; } if($_REQUEST["OF"]=="FUTCOM"){ $where .= ' AND (OptionType="XX" OR OptionType="" OR OptionType IS NULL )'; }else{ $where .= ' AND OptionType!="XX" AND OptionType!="" AND OptionType IS NOT NULL'; } $query='SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY BaseSymbol ORDER BY '.$order_by.') AS rank1 FROM SymbolMasterInfo where Active=1 AND stockname LIKE "MCX_COM_%" AND ExpiryData>'.$current_time.''.$where.' ) AS ranked_marks WHERE rank1 <= 5'; $symbols_info = curl_call($query); foreach($symbols_info as $symbol_data){ $symbol_data["ExpiryData"]=date("d M Y",$symbol_data["ExpiryData"]); if(isset($result_dataset[$symbol_data["BaseSymbol"]])){ $result_dataset[$symbol_data["BaseSymbol"]]["sub"][]=$symbol_data; }else{ $result_dataset[$symbol_data["BaseSymbol"]]=$symbol_data; } } $response = array('status'=>true,'data'=>$result_dataset); echo json_encode($response,true); exit; } else if($Type=="Etfs" && isset($_REQUEST["Exchange"]) && $_REQUEST["Exchange"]!=""){ $Exchange=$_REQUEST["Exchange"]; $file_content = file_get_contents('MW-ETF-15-Feb-2024.csv'); $file_data = explode("\n", $file_content); $etfs = array(); foreach($file_data as $k=>$v){ $exp=explode(",",$file_data[$k]); $etfs[]='"'.trim(str_replace('"',"",$exp[0])).'"'; } if(count($etfs)>0){ $etfs_data=implode(',',$etfs); $result1 = $_db->query('SELECT * FROM Securities WHERE SCSymbol IN ('.$etfs_data.')'.($Exchange=="NSE"?' AND BSCScripCode="-1"':' AND NSCToken="-1"')); $isn_no_list = array(); while ($row_sec = $result1->fetchArray(SQLITE3_ASSOC)) { $isn_no_list[] ='"'.$row_sec["ISIN"].'"'; } $order_by=" PriceIndicator DESC"; $where = " AND PriceIndicator>0"; if($Activity=="TopGainers"){ $where = " AND PriceIndicator>0"; $order_by=" PriceIndicator DESC"; }else if($Activity=="TopLosers"){ $where = " AND PriceIndicator<0"; $order_by=" PriceIndicator ASC"; }else if($Activity=="TopbyValue"){ $where=""; $order_by=" (AveragePrice*volume) DESC"; }else if($Activity=="TopbyVolume"){ $where=""; $order_by=" volume DESC"; }else if($Activity=="OnlyBuyers"){ $where=""; $order_by=" totalbuyVolume ASC"; }else if($Activity=="OnlySellers"){ $where=""; $order_by=" totalsellVolume ASC"; } $isin_data=implode(',',$isn_no_list); $query='SELECT * FROM SymbolMasterInfo where Active=1 AND ExchSegment="NSE" '.$where.' AND ISIN IN ('.$isin_data.') ORDER BY'.$order_by.' LIMIT '.$Nosymbols; $symbols_info = curl_call($query); $response = array('status'=>true,'data'=>$symbols_info); echo json_encode($response,true); exit; } } } echo json_encode($response);exit; ?>