Sabtu, 18 Juni 2011

VPS for EA Testing #4

Pak Ary,

Trims untuk bantuan penjelasannya tentang Ultra VNC.

Saya sudah mencobanya dan berhasil :)

Memang sudah tidak bermasalah dengan session tapi ada yang masih mengganjal di pikiran saya tentang hal tersebut. Saya ingin konfirmasikan kembali supaya pernyataan saya tidak salah di kemudian hari.

Dari balasan Pak Ary, saya menyimpulkan, untuk menggunakan VPS (tanpa Ultra VNC) hanya cukup dengan satu session maka yang perlu diperhatikan adalah tidak membuka VPS secara bersamaan pada PC dan laptop. Kemudian cukup melakukan Disconnect jika terjadi double Session yang aktif. Setelah memutuskan koneksi dengan kedua session maka saya dapat 'mengunjungi' VPS Session 1 darimana pun.

Apakah pernyataan saya ini benar?

Setelah melakukan penginstalan menggunakan Ultra VNC, saya mencoba uninstall kembali untuk melihat pengaruhnya sebelum dan sesudah diinstall apakah nantinya akan ada error atau tidak. Nampaknya setelah dilakukan uninstall, masih terdapat 'user' lain yang melakukan akses pada VPS padahal semua akses sudah saya coba Disconnect (gambar Users.jpg).




Saya mencoba untuk melakukan Disconnect pada kedua Users (satu per satu), tapi kedua Users tersebut tetap muncul. Server sama namun ID dan Session yang berbeda. Ini membuat saya makin bingung.

Hal ini saya lakukan mengingat pada EA terdapat keanehan yang mengakibatkan ordersend() terbuka dua kali. Jadi ada kecurigaan apakah ini terjadi karena pengaruh dari masalah VPS tersebut ataukah saya punya 'serangga' yang ngumpet di dalam program EA (terjadi juga pada EA saya yang lain, beda broker dan beda strategi, tentunya pada EA tidak ada algoritma untuk doubling order).

Kemudian saat diperiksa pada tab Sessions, muncul 3 list dengan Server ID yang sama, berbeda Session, dan berbeda ID (gambar Sessions.jpg). Ketiganya pun saya sudah coba disconnect bagi yang memiliki pilihan untuk itu. Namun setelah kembali ke VPS nyatanya tetap sama.

Sebelum dilakukan instalasi dengan Ultra VNC, hanya terdapat dua sesi (saat laptop dan PC mengakses VPS yang sama) atau bahkan hanya satu. Sayangnya saya tidak sempat 'mengabadikan'nya lewat gambar.

Menurut Pak Ary, apa yang terjadi pada VPS ini?

Mohon bantuannya lagi.

Mohon maaf kalo masalah saya ini merepotkan Pak Ary.

Regards,
Aras




Pak Aras,

Sesering apapun Pak Aras bertanya, justru saya dengan senang hati menjawab dan berusaha membantu Pak Aras. Tidak merepotkan asalkan Pak Aras berkenan bersabar menunggu sampai saya memiliki waktu untuk menulis jawabannya.

Bila Pak Aras perhatikan, pada blog ini yang rajin bertanya hanyalah Pak Aras dan Pak Agus saja. Awal-awal dahulu saya sempat bingung, kok sama sekali tidak ada yang bertanya atau berkomentar. Tapi dengan berjalannya waktu dan setelah mendengarkan komentar banyak teman yang pernah membaca blog ini, ternyata artikel-artikel yang ada disini mereka sebut sebagai artikel "kelas berat" :)

Hal ini dapat dimaklumi dikarenakan yang dapat memahami isi dari artikel yang ditulis disini hanyalah mereka yang benar-benar serius berkecimpung di dunia trading. Bagi yang awam, jangankan dapat memahami isi artikel, memahami istilah-istilah seperti entry exit, take profit, stop loss, atau pending order saja sudah bingung, bagaimana bisa bertanya atau berkomentar :)

Oleh karenanya harap maklum bila yang rajin bertanya hanya Pak Aras dan Pak Agus. Hal ini menunjukkan bahwa Pak Aras maupun Pak Agus mempelajari trading dengan sangat serius sehingga selalu ada saja pertanyaan timbul di kepala yang memerlukan jawaban.

Dari pertanyaan Pak Aras, dapat saya simpulkan bahwa koneksi client server masih sangat asing bagi Pak Aras. Memang hal ini membingungkan bagi yang tidak terbiasa. Saya sendiri dapat memahaminya dikarenakan kesukaan mengutak-atik komputer dan beberapa kali pernah menginstall sendiri Windows server hanya sekedar iseng memenuhi rasa penasaran untuk mengetahui apa bedanya dengan Windows XP.

Prinsip dasar koneksi client server, fungsi server adalah memenuhi segala macam permintaan client. Server bersifat pasif, baru bekerja bila terdapat permintaan dari client. Tugas server adalah terus menerus memantau (listen) ada atau tidak permintaan dari client yang harus dipenuhinya. Oleh karenanya aplikasi pada server yang berfungsi memantau permintaan client disebut dengan istilah Listener.



Pada gambar diatas terlihat terdapat 4 buah Sessions. Perlu diingat bahwa Sessions belum tentu berarti Active User. Hal ini terlihat pada kolom User dimana pada gambar diatas terlihat bahwa user Administrator melakukan 3 buah Sessions yaitu Console, RDP-TCP#1, dan RDP-TCP#2.

Session RDP-TCP tanpa nama User adalah aplikasi listener untuk Remote Desktop Connection dan bukan Active User. Session RDP-TCP (Remote Desktop Protocol - Transmission Control Protocol) adalah aplikasi dari Windows Server yang berfungsi memantau ada tidaknya permintaan untuk melakukan remote desktop connection dari client.

Bila terdapat permintaan dari client, maka oleh aplikasi listener ini akan diberikan active session dengan nama RDP-TCP#1, RDP-TCP#2, RDP-TCP#3, dan seterusnya sesuai jumlah permintaan session dengan mempertimbangkan batasan yang diberikan oleh pemilik server. VPS hosting pada umumnya hanya memberikan 2 buah session remote desktop, sehingga dengan adanya batasan ini maka RDP-TCP#3 dan selanjutnya tidak akan pernah diberikan dikarenakan maksimal dibatasi hanya RDP-TCP#1 dan RDP-TCP#2 (2 buah).

Hal ini dikarenakan semakin banyak session yang diberikan maka semakin banyak juga memory yang diperlukan untuk menangani masing-masing session tersebut. Oleh karena itu untuk efiensi dan agar resource memory dapat terbagi merata maka VPS hosting hanya memberikan maksimal 2 buah active session per user.

Session Console adalah session fisik (physicall session) dan bukan remote session. Session ini otomatis diberikan oleh server pada saat dinyalakan meskipun tidak ada remote users yang melakukan koneksi. Fungsi console session adalah untuk menampung fungsi monitor, keyboard, dan mouse yang terhubung langsung secara nyata (physically) pada server.

Dengan kata lain, meskipun koneksi internet pada VPS tersebut terputus, session console akan tetap muncul dikarenakan otomatis diberikan oleh Windows meskipun pada saat tersebut tidak ada physicall users yang melakukan apapun.



Dari penjelasan diatas dapat disimpulkan bahwa session Console tidak diperhitungkan sebagai users dikarenakan otomatis diberikan oleh Windows.

Sehingga gambar diatas dapat dibaca bahwa user Administrator (tentunya dengan password yang sama) melakukan 2 buah koneksi remote desktop connection dengan nama session RDP-TCP#1 dan RDP-TCP#2. Saat ini user Administrator melakukan koneksi melalui RDP-TCP#1 (gambar wajah orang berwarna hijau) dan tidak melakukan apapun sehingga terjadi idle time 4 detik. Gambar diatas menunjukkan bahwa Administrator melakukan double session, sehingga untuk menghemat memory maka session RDP-TCP#2 dilakukan Disconnect.

Pernyataan Pak Aras benar adanya, terlebih dahulu lakukan disconnect pada RDP-TCP#2 (yang tidak sedang digunakan) dan setelahnya lakukan disconnect pada RDP-TCP#1. Dengan cara ini, pada saat Pak Aras melakukan koneksi remote desktop darimanapun maka oleh Listener yang akan diberikan adalah session RDP-TCP#1.

Kebingungan Pak Aras dikarenakan karena yang di-disconnect adalah session Console, Listener, dan session RDP-TCP#1. Session Console maupun Listener tidak dapat dilakukan disconnect, Windows akan otomatis melakukan recovery dan memunculkannya kembali karena diperlukan oleh system.

Sedangkan session RDP-TCP#1 adalah session yang Pak Aras gunakan. Meskipun sudah di-disconnect tetapi kemudian setelahnya Pak Aras kembali melakukan koneksi ke VPS, tentu saja session ini yang akan kembali muncul :)

Terdapat cara lain agar tiap user dibatasi hanya menggunakan 1 buah session saja. Caranya adalah mengedit Terminal Services Configuration dan lakukan restart setelahnya.



Ubah saja Restrict Each User to One Session menjadi Yes, maka Listener hanya akan memberikan RDP-TCP#1. Session RDP-TCP#2 dan selanjutnya tidak akan pernah lagi diberikan karena pada VPS hanya terdapat 1 users saja yaitu hanya Administrator dan session yang diberikan dibatasi hanya 1 buah per user.

Tentunya sekarang Pak Aras dapat lebih memahami kenapa saya cenderung menggunakan Ultra VNC daripada remote desktop. Ultra VNC lebih hemat memory daripada remote desktop dan juga tidak membingungkan dengan session.

Agar Ultra VNC tidak aktif, sebenarnya ada cara lain tanpa harus repot melakukan uninstall. Disable saja Ultra VNC service dan setelahnya klik stop atau lakukan restart.



Perlu diketahui bahwa bahasa MQL tidak memungkinkan untuk melakukan hacking atau hijack komputer. Agar hacking atau hijack dapat dilakukan dengan MQL, diperlukan bantuan file DLL (Dynamic Link Library) dimana fungsi file DLL ini untuk mengakses fungsi-fungsi di Operating System (Windows) sehingga hacking dapat dilakukan. File DLL sendiri pada umumnya dibuat dengan menggunakan bahasa C++ dan tidak bisa dengan menggunakan MQL dikarenakan terbatasnya fungsi yang ada di dalam bahasa ini.

Oleh karenanya sepanjang pada folder C:\MT4\experts\libraries\ tidak ada file DLL yang aneh-aneh, maka tidak perlu khawatir. EA hanya berfungsi untuk melakukan trading dan tidak dapat melakukan hacking atau hijack sepanjang tidak ada file DLL yang mencurigakan pada folder tersebut.

Seperti yang ditulis sebelumnya, EA milik Pak Aras melakukan OrderSend sebanyak 2 kali kemungkinan dikarenakan shortcut MT4 yang ditempat pada StartUp Menu. Akibatnya tanpa disadari telah terbuka 2 session sehingga terdapat 2 buah MT4 yang aktif pada masing-masing session yang kemudian melakukan OrderSend sehingga terlihat EA melakukan order sebanyak 2 kali.

Yang terbaik yang dapat dilakukan adalah untuk sementara waktu menghilangkan shortcut tersebut dari folder StartUp Menu dan menjalan MT4 secara manual. Nantinya apabila permasalahan session ini dapat Pak Aras lebih pahami dan jumlah session telah terjaga hanya 1 buah saja, maka Pak Aras dapat kembalikan lagi shortcut tersebut pada StartUp Menu.

Alternatif lain, uninstall UltraVNC dan kemudian edit Terminal Services Configuration sehingga jumlah session terjaga hanya 1 buah saja seperti contoh diatas. Dengan cara ini maka session akan terus menerus terjaga hanya 1 buah.

Bila Pak Aras menjalan Ultra VNC dan Remote Desktop secara bersamaan serta shortcut MT4 masih berada di StartUp Menu, maka jumlah session dapat mencapai 3 buah yaitu Ultra VNC 1 buah dan Remote Desktop 2 buah. Hal ini dikarenakan 1 buah session Ultra VNC diberikan oleh session Console dan UVNC service, sedangkan 2 buah session remote desktop diberikan oleh Listener.

Kalau hal ini terjadi, EA milik Pak Aras tidak hanya melakukan OrderSend sebanyak 2 kali, tetapi dapat menjadi 3 kali. Akibatnya Pak Aras tentunya akan makin bertambah bingung :)

Demikian Pak Aras, semoga artikel ini dapat menghilangkan kebingungan Pak Aras.

2 komentar:

  1. ass.
    terima kasih atas pembelajaran daro blog ini.

    beberapa saat lalu saya juga mengalami hal yang sama, dimana terjadi doubleorder yang berakibat menggeser TP saya menjadi closeallposition = negatif.... saya pikir kesalahan ada pada broker insta yang 'menjahili' atau dari VPS yang restart ulang...... ternyata masalahnya mungkin ada 2 sesion yang terbuka itu ya pak.

    mungkin saat saya login pakai remote control connection (RCC), di kompi lain rekan saya juga login .. jadi ada 2 session terbuka, demikian ya pak ?

    kalau di VPS saya jalankan terminal MT4 dengan EA1, lalu saya login di laptop saya jalankan MT4 pakai EA1 juga... apakah ada kemungkinan doble order terjadi ?

    kalau di kompi saya , MT4 nya tidak saya jalankan EA1 apakah masih ada kemungkinan muncul dobel order juga ?

    pertanyaan saya selanjutnya, apakah kalau kita (login ke 1) keluar dari RCC dengan klik tanda x, apakah sesion (login no 1) otomatis juga close ?

    o ya saat ini di VPS sudah saya setting untuk ONE SESION seperti saran di artikel di atas.

    demikian pak pertanyaan saya.
    terima kasih atas pencerahannya.

    Rudi Prayogo
    rudiprayogo@yahoo.com

    BalasHapus
  2. Tergantung pada EA-nya, bila memiliki pengecekan double order pada algoritma-nya maka tidak akan pernah terjadi order ganda.

    BalasHapus