Adapun Data Broker yang ditampilkan, data broker yang masih mempunyai saldo di suatu saham 5 terbanyak.
Langkah-langkah yang harus dipersiapkan
1. buatkan database rekapitulasi broker (bisa pakai MYSQL ataupun PostgreSQL silakan pilih aja), data bisa diambil dari flatform trading securities atau dari website www.duniainvestasi.com. atau kalau anda malas mengambilkan bisa minta ke saya datanya, free of charge.
2. Buatkan webservice, webservice ini digunakan untuk download data broker data database. karena di internet banyak yang pakai php, makai webservicenya saya menggunakan php, sedangkan untuk webservernya dapat menggunakan apache, script webservice :
$host = 'localhost';
$user = 'mtrading';
$pass = 'mtrading';
$db = 'mtrading';
if( $_GET["stock"] && $_GET["dt1"] && $_GET["dt2"] && $_GET["rec"] ) {
$link = pg_connect("host=localhost port=5432 dbname=mtrading user=mtrading password=mtrading") or die("Can not connect." .pg_error());
//pg_select_db($db) or die("Can not connect.");
$stock =$_GET["stock"];
$dt1 =$_GET["dt1"];
$dt2 =$_GET["dt2"];
$rec =$_GET["rec"];
//$stock ="AALI";
//$dt1 ="20120501";
//$dt2 ="20120515";
//$rec =5;
$query = "select broker,sum(tvol) as saldo,sum(tval)/sum(tvol) as modal from market_broker where datet>='" .$dt1. "' and datet<='" .$dt2. "'";
$query = $query . " and stock='" .$stock. "' group by broker";
$query = $query . " having sum(tvol)>0 order by sum(tvol) desc " ;
$values = pg_query($link,$query);
flush();
echo("");
echo("
$j = 0;
while ($rowr = pg_fetch_array($values, NULL, PGSQL_ASSOC)) {
if ($j==$rec){
break;
}
$broker = $rowr['broker'];
$modal = $rowr['modal'];
$saldo = $rowr['saldo'];
echo "
echo "
echo " MODAL='$modal'";
echo " SALDO='$saldo'";
echo "/>
$j++;
}
if ($j==0) {
for ($i=1;$i<=$rec;$i++) {
echo "
echo " MODAL='0'";
echo " SALDO='0'";
echo "/>
}
} else
if ($j<$rec) {
for ($i=$j;$i<=$rec;$i++) {
echo " BROKER='-'";
echo " MODAL='0'";
echo " SALDO='0'";
echo "/>";
}
}
echo "
pg_free_result($values);
pg_close($link);
}
?>
setelah membuat webservicenya, langkah berikutnya program amibrokernya untuk mendownload data broker. program tersebut, gabungan antara script AFL dan vbscript, hal ini karena AFL tidak dapat membuat array dengan dimensi yang disesuaikan dengan kebutuhan. dan tidak bisa menyimpan array dengan tipe data striing, berikut scriptnya :
EnableScript("vbscript");
_SECTION_BEGIN("Dana Asing");
SetChartOptions(0,0,chartGrid20|chartGrid80);
//if (Interval() == inDaily) {
// Plot(gr5hari ,"Dana Asing",IIf( gr5hari>-1, colorGreen,colorRed) , styleHistogram);
//odbcOpenDatabase("DSN=mtrading;UID=mtrading;PWD=mtrading");
//Graph0=odbcGetArraySQL("SELECT fore_buy-fore_sell,DATET FROM saham_asing WHERE SYMBOL='"+Name()+"' ORDER BY DATET ASC");
//Graph0=Ref(Graph0,1);
//i=Lookup(DateTime(),_DT("2011-01-04"),1);
//myobj = CreateObject("mbroker.Class1");
//gr = myobj.GetBr("M","DSN=mtrading;UID=mtrading;PWD=mtrading","AALI","20120501","20120520");
//Title = WriteVal(gr[1],1.0);
broker = "";
stock ="AALI";
dt1="20120501"; //YYYYMMDD
dt2="20120510"; //YYYYMMDD
recbr=5;
<%
Dim objDOMDocument
Dim root
Dim child
Dim j
Dim i
Dim isi
Dim br(4)
dim modal(4)
dim saldo(4)
dim stock
dim dt1
dim dt2
dim url
dim recbr
stock = AFL("stock")
dt1 = AFL("dt1")
dt2 = AFL("dt2")
recbr = AFL("recbr")
Set objDOMDocument = CreateObject("MSXML2.DOMDocument")
objDOMDocument.async = False
url ="http://192.168.1.20/misterstock/broker.php?" + "stock=" + stock
url =url + "&dt1=" + dt1 + "&dt2=" & dt2 & "&rec=" & recbr
' msgbox(url)
'objDOMDocument.Load ("http://192.168.1.20/misterstock/broker.php?stock=AALI&dt1=20120303&dt2=20120312&rec=5")
objDOMDocument.Load (url)
Set root = objDOMDocument.selectNodes("//record")
for j = 0 to root.length - 1
for Each child In root(j).childNodes
if child.Attributes.length > 0 Then
for i = 0 To child.Attributes.length - 1
if child.Attributes(i).NodeName="BROKER" then
br(j) = child.Attributes(i).nodeValue
else
if child.Attributes(i).NodeName="MODAL" then
modal(j) = child.Attributes(i).nodeValue
else
saldo(j) = child.Attributes(i).nodeValue
end if
end if
Next
'MsgBox br(j)
End if
Next
Next
' Mengambil Nilai dari Broker,Modal,Saldo
for i = 0 to 4
AFL("broker") = AFL("broker") + br(i) + ","
next
%>
Title=broker ;
_SECTION_END();
adapun hasilnya yang ditampilkan sebagai berikut :
script tersebut dapat dikembangkan seperti untuk menampilkan modal dasar dan saldo dari setiap broker, sehingga dapat membantu dalam memutuskan trading kita apalah buy, hold atau sell.
Demikian script sederhana ini, mudah-mudahan dapat membantu rekan yang baca blog ini.
0 komentar:
Posting Komentar