14 Şubat 2021 Pazar

Adapting Statistical Indicators to Metastock

        You must have a explore system when trading on the Stock Exchange. This can be a simple two-move average or a more complex system. But with which of these shares will we build a portfolio? At this point, statistical indicators rush to help. Unfortunately, the indicators I'm about to give don't contain codes in any other sources on the internet. For the first time here, I think I'll be sharing.

        I need to re-emphasize an important point here. There is no buy-sell transaction with these indicators. These indicators are for "share selection" only. You already have a buy-and-sell system. You have done a scan with this system. The system has presented you with a list of stock recommendations.  That's where we're going to measure the shares on the statistical scales. The main indicators we will use are: expected return, downside ratio, Sortino ratio, upside potential ratio, (modified) omega, Sharpe ratio, beta and alpha. 

E(r)

        Let's swallow the pushover first. E(r) means the expected value. How much has our stock made us throughout its history? There are three routes to this. How much did the stock itself make? Secondly, how much did the stock make against the index? Thirdly, how much did he bring against a foreign currency?

R:= Log(C/Ref(C,-1));0;
eur:=Security("euro",C); { Security("YourCountryIndex",c);}
Reur:=Log(eur/Ref(eur,-1));
n:=Cum(IsDefined(r-eur));
Er:=Cum(R-Reur)/n;
SD:=Cum(Power(R-Er,2))/n;
(ER-.5*SD)*100*100;

        This is the second line that determines the three calculations. you can specify the code on this line as either foreign currency or index. Or, you delete this line to calculate the share's own return. 

To be continued...

5 Aralık 2016 Pazartesi

Linux'ta Login Password unutursak ne yapmalıyız

Herkese selamlar!

Geçenlerde bir arkadaşım aradı ve şifresini unuttuğunu; bu yüzden de Linux sisteminde oturum açamadığını söyledi.

Kısa bir süre sonra elime geçen laptopa enerjisini verdim ve Oturum Açma Ekranı'na göz attım. Sistemde herşey çalışıyordu ancak arkadaşın söylediği her parola yanlış çıkıyordu, giriş yapamadık. 

 
Bunun ardından Parted-Magic yüklü bir USB Stick ile laptopu tekrar başlattım.

Orada, Dosya Tarayıcı(File Browser)'yı açtım ve kök bölümünü arkadaşın sisteminden mount ettim, etc/passwd dosyasını metin editörü ile açtım.

Arkadaşın isminin yazılı olduğu satırı buldum (Örneğin Yılmaz Demir)

Demir:x:1000:100:Yılmaz Demir:/home/demir:/bin/bash

Örnek satırda görebileceğiniz şekilde, Kullanıcı Adı ve 1000 sayısı arasındaki x değerini kaldırıyorum.

Demir::1000:100:Yılmaz Demir:/home/demir:/bin/bash

Dosyayı kayıt ettim ve yeniden başlattıktan sonra bir daha şifre istemeden giriş yaptık.


Özetle bir şablon çıkarmak gerekirse:

CD, DVD veya USB Stick'te kurulu sistem ile açılış yapın;
Sonra /etc/passwd dosyasını bir Metin Düzenleyicisi ile açın (Nano veya başka bir şeyle);
Şu satırı arayın:
Kullanıcı_adı:x:1000:100:Kullanıcı_Adı:/home/kullanıcı_adı:/bin/bash

x'i kaldırın(!)

Kullanıcı_adı::1000:100:Kullanıcı_Adı:/home/kullanıcı_adı:/bin/bash

Dosya'yı kaydedin ve sistemi yeniden başlatın ve Sisteminize giriş yapın.

Bu çözüm pek çok Linux Dağıtımı için çalışıyor. Arkadaşımın sorunlu sistemi Linux Mint 18 idi.

Umarım bu küçük çözüm size de yardımcı olur.

4 Kasım 2015 Çarşamba

Fedora 22'den 23'e Geçiş

Fedora 23 geçtiğimiz hafta itibariyle yayınlandı. Daha önceden sürüm yükseltmesini "fedup" aracı ile yapardık. Bununla birlikte Fedora 23 için "dnf" aracını kullanacağız. Fedora 21 ile hayatımıza giren "dnf", aslında "yum" aracının daha kapsamlı bir versiyonu olarak tasarlanmış. Anlayacağınız, "yum" yerini "dnf" bırakacak.

Yüklemeler için dnf system upgrade plugin'ine ihtiyacımız olacak. Ara adımlarımızdan biri de bu plugini yüklemek olacak.

Haydi başlayalım.

1) Sistemi Güncelleyelim ve Yedekleme Alalım
Yükleme öncesi mutlaka sistemi güncellemek gerekiyor. Buna ek olarak sistemi yedeklemek isterseniz deja-dup kullanışlı bir uygulama tercihi olabilir. Aşağıdaki komutları bir terminal ekranında yazalım:

#sudo dnf upgrade

2) dnf Plugini Kuralım

#sudo dnf install dnf-plugin-system-upgrade

3) Yeni Sürümü Yüklemeye Başlayalım

#sudo dnf system-upgrade download --releasever=23 --best

Bu komut ile dosyalar indirilmeye başlanır. "--best" flag dikkatinizi çekmiştir. Bununla amaç, sisteminizdeki paketlerin bağlılık sorunları varsa yüklemeyi durdurmak. "--best" flagını kullanmazsak yükleme bağlılık kontrolü yapmadan devam eder ancak daha sonra sistem 23'e güncellenirken sıkıntı yaratabilir. Bence bu flag ile komut verin, daha sonra başınız ağrımasın.

4) Reboot ve Upgrade

#sudo dnf system-upgrade reboot

Evet, artık kahve molası vermek için tam zamanı. Zira sistem yeniden başlayıp sistemi yüklemeye başlayacak.

Yeni Fedora hayrlı olsun!

Yükleme ile daha detaylı bilgi veya sorunla karşılaşırsanız detaylar için dnf system upgrade wiki article başlığını incelemeniz lehinize olacaktır.

Q.E.D

27 Ekim 2015 Salı

Fedora VirtualBox Kurulumu

Linux'da her ne kadar her amaca yönelik açık kaynak kodlu program olsa da kimi zaman Windows'a özel geliştirilen uygulumalara ihtiyaç duyabiliriz. Bu durumları çözmek için iki yöntem vardır.

Biri "wine"(Wine Is Not an Emulator). Reverse coding ile geliştirilmiş wine ile sanki Windows kurulmuş gibi programı yüklemenize izin veriyor. Ancak iki kısıtı var. İlki, her programı yüklemek ve istediğiniz şekilde verim almak mümkün değil. İkincisi ise bazı windows programlarını yüklemek için .net veya diğer birtakım özel talepleri olunca bunlar terminal ekranından ek komut girerek karşılamak gerekiyor. Ben bile, onca ısrarıma rağmen bazı şeyleri yükleyemedim, vazgeçtim.

Oracle VirtualBox ise güçlü bir x86 ve AMD64/Intel64 sanal makina kurma aracı. Açık kaynak ürünleri arasında benim bir numaralı favorim. Zira, VirtualBox sayesinde x86 donanımı için sunucu yada masaüstü için profesyonel kalitede sanal makina kurmanızı sağlıyor.

VirtualBox ile kurabileceğiniz misafir işletim sistemlerinden bazıları:
-Windows 3.x,    Windows NT 4.0,    Windows 2000,    Windows XP,    Windows Server 2003
  Windows Vista,    Windows 7,    Windows 8,    Windows 8.1
- DOS
- Linux (2.4, 2.6, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11)
- Solaris
- OpenSolaris
- OpenBSD

Amacımız, VirtualBox'ın son sürümünü kendi yum repo'sundan yüklemek. Bunun için terminal ekranını açıp bir takım komutlar gireceğiz.

Not: Fedora 17 kullanıcıları VirtualBox 4.3, Fedora 16'da VirtualBox 4.2, Fedora 15/14 için VirtualBox 4.1, Fedora 13 içinse VirtualBox 4.0 ve Fedora 12'da VirtualBox 3.2 kurulabilir. Daha üst versiyonlarını rpm olarak indirseniz ve çalışma sorunu olursa sebebi bu.

1. root olalım
Bütün işlemleri terminal ekranında yapacağız:

su -
## Ya da ##
sudo -i
 
2. Repo Dosyalarını Kuralım

cd /etc/yum.repos.d/
## Fedora 22/21/20/19/18/17/16/15/14/13/12 kullanıcıları ##
wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo

3. Sistemi Güncelleyelim:

    yum update

 Güncellemenin ardından sistemde kernel yüklemisi olup olmadığını kontrel etmeliyiz. 

Terminal ekranında aşağıdaki komutun çıktısını kontrol edin. İkisi aynıysa sorun yok. Değilse aşağıdaki komutun ardından "reboot" yazarak sistemi yeniden başlatın.

    rpm -qa kernel |sort -V |tail -n 1
    uname -r

4. Bağlı Paketleri Kuralım:

    ## Fedora 22 ##
    dnf install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms
    ## Fedora 21/20/19/18/17/16/15/14 ##
    yum install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms
    ## PAE kernel ##
    ## Fedora 22 ##
    dnf install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-PAE-devel dkms
    ## Fedora 21/20/19/18/17/16/15/14 ##
    yum install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-PAE-devel dkms

5. VirtualBox'ın Son Sürümünü Kuralım. (Şimdilerde 5.0.0)

    ## Fedora 22 ##
    dnf install VirtualBox-5.0
    ## Fedora 21/20/19/18/17/16/15/14  ##
    yum install VirtualBox-5.0

 Not: Bu komutla "vboxusers" grubu otomatik yaratılıyor ve sistemdeki kullanıcılar bu gruba üye edilmelidir.

Ayrıca kernel modullerini de yeniden kurgulamalıyız.

    /etc/init.d/vboxdrv setup
    ## ya da ##
    service vboxdrv setup

6. VirtualBox kullanıcılarını "vboxusers" Grubuna Ekleyelim

Aşağıdaki komutta "user_name" yerine sizin veya kullanacak kişilerin kullanıcı adlarını yazmayı unutmayın.

    usermod -a -G vboxusers user_name

7.  VirtualBox Çalışmaya Hazır
İster menüden isterse terminalden kullanıma hazır.

    VirtualBox

Sorun Giderme
Eğer KERN_DIR parametresiyle yada kernel directory otomatik bulunamazsa, KERN_DIR değişkenini elle tespit edeceğiz:

    ## Şu anda çalışan kernel ##
    KERN_DIR=/usr/src/kernels/`uname -r`

Örneğin;
    KERN_DIR=/usr/src/kernels/2.6.33.5-124.fc13.i686
    ## Export KERN_DIR ##
    export KERN_DIR

Evet, kurulumu tamamladık. İşin zor bölümünü hallettik. Geriye VirtualBox ile işletim sistemini kurmaya geldi. Bu arada, VirtualBox'ın sitesinden mutlaka Oracle VM VirtualBox Extension Pack'ı indirip kurmanız gerekiyor. Böylece kurduğunuz işletim sistemi tam, iç pencere, yada içiçe modlarında kullanabileceksiniz. Ayrıca, her türlü donanıma da ulaşma imkanı sağlayacak. Mutlaka Oracle VM VirtualBox Extension Pack kurun. İndirip üzerine çift tıklayınca otomatik çalışacak.

VirtualBox kullanımı için internette pek çok kaynak var. Detayları oraya bırakıyorum.

Q.E.D.


19 Ekim 2015 Pazartesi

Fedora Program Kurma

Linux dağıtımlarında program kurmanın birkaç yöntemi vardır.
1 : İlk olarak kurulmak istenilen program doğrudan Paket Yöneticisinden aratılıp, bulunur ve seçilip kurulabilir. Böylece, ilgili programın varsa bağımlılıkları da birlikte kurulacaktır. Bu, en pratik ve en sorunsuz kurma yöntemidir.
2 :  İkinci yöntem, programı bilgisayarımıza indirmekle başlar.
uçbirimde
su
kodunu vererek root olup;
apt-get install program_adı
koduyla programı bilgisayarımıza indirmemiz gerekir. İndirdiğimiz program kurulurken,  Paket Yöneticisi gibi depoları kullanacak ve ilgili paket bağımlılıklarını kuracaktır.
3 : Depolarda bulunmayan programları internet üzerinden indirip kurmak da mümkündür. Sözgelimi depolarda bulunmayan bir programı masaüstüne indirmiş, kurmak konumuna gelmişsek.
uçbirimde
su
kodunu vererek root olup;
dpkg -i /nerede_ise/program_adı
kodu verilir.
Bu yöntemin dezavantajı, programın çalışması için gerekli olan paket bağımlılıklarının otomatik olarak kurulamamasıdır.
- See more at: http://linuxisletimsistemleri.com/linuxta-program-kurmak/#sthash.AK0c6DgA.dpuf
 Fedora'da program kurmanın birkaç yöntemi vardır.

I-) İlk olarak kurulmak istenilen program doğrudan Paket Yöneticisinden aratılıp, bulunur ve seçilip kurulabilir. Böylece, ilgili programın varsa bağımlılıkları da birlikte kurulacaktır. Bu, en pratik ve en sorunsuz kurma yöntemidir.

II-) İkinci yöntem, programı bilgisayarımıza indirmekle başlar.


Terminal ekranını açıp;

#sudo yum install program_adı -y

koduyla programı bilgisayarımıza indirmemiz gerekir. İndirdiğimiz program kurulurken,  Paket Yöneticisi gibi depoları kullanacak ve ilgili paket bağımlılıklarını kuracaktır.

III-) Depolarda bulunmayan programları internet üzerinden indirip kurmak da mümkündür. Sözgelimi depolarda bulunmayan bir programı masaüstüne indirmiş, kurmak konumuna gelmişsek.

Terminal ekranını açıp;

#sudo rpm -i /nerede_ise/program_adı

kodu verilir. Kanımca nautilus dosyalama programı içinde çift tıklayarak yüklemek de aynı işlevi görecektir.

Bu yöntemin dezavantajı, programın çalışması için gerekli olan paket bağımlılıklarının otomatik olarak kurulamamasıdır.




IV-) Bir de program derleme yöntemi vardır. Programlar bir programlama dilinde yazılır ama programın, bilgisayarda çalışması için derlenmesi gerekir. Yukarıda hazır derlenmiş programlardan söz ettik. Ancak dileyen kendisi de programını derleyebilir. Ya da kimi programlar böyle gelmiş olabilir. Ancak derleme işleminin yapılabilmesi için ilgili bilgisayarda derleme programlarının (build-essential) kurulu olması gereklidir.

Derleme için uçbirimde:

#su

kodunu vererek root olup;

#cd /home/program_adi

komutuyla ilgili dizine gidilir. Root olduktan sonra sırasıyla:

#./configure
#make
#make install


komutları verilir. Derlemede de paket bağımlılıkları kendiliğinden kurulamayacağı için tek tek elle kurmak gereklidir.

25 Mart 2015 Çarşamba

Fedora'da Eski Kernel Silmek

Belirle aralıklarla yaptığımız sistem güncellemelerinin ardından sistemde birden fazla kernel yer alabilir. Hangisi ile çalışacağımızı sistem ilk açılışta bir ekranla seçimimize bırakıyor. Kullanmadığımız eski kernellerin sistemde yer kaplamanın dışında hiçbir yan etkisi yoktur. Bir byte'in bile hesabını yapan titiz kullanıcılar eski kernelleri uzaklaştırmak isteyebilir.

Aşağıdaki komutları kullanmadan önce mutlaka şu soruyu kendinize sorun: Yeni kerneli yükledim eskisine ihtiyacım yok ama peki bir sıkıntıyla karşılaşırsam ne yapacağım? O yüzden eski kernelleri silmeden önce yeni kernelin işinizi gördüğünden emin olun.

Yüklü Kerneller Neler

$ rpm -qa kernel
kernel-3.19.1-201.fc21.i686
kernel-3.18.9-200.fc21.i686



Eski Kernelleri Sil

Bunun için "package-cleanup" programcığına ihtiyacımız var. Eğer sistemde kurulu değilse önce "yum-utils" paketine yüklemeliyiz.

$sudo yum install yum-utils -y
$package-cleanup --oldkernels --count=2

Sistemde Saklanabilecek Kernellerin Sayısını Belirlemek


$sudo gedit /etc/yum.conf

Bu dosya içindeki "installonly_limit" değerini değiştereceğiz. Benim sistemimde 3'e ayarladım. Kimi zaman eski kernellere acil ihtiyaç duyabiliyorsunuz.

installonly_limit=2
 
Q.E.D.

Linux'ta Donanım Detaylarını Görmek

Linux'ta sistem hakkında detayları bilgileri almak tek bir komutla mümkün. Sihirli kelime: dmidecode.

Aslında Linux'ta her işlem için bir komut mevcut. Birazdan paylaşacağım "lshw, lsusb" gibi ek komutlarla daha da özele inebileceğiz.

dmidecode

dmidecode(DMI table coder), BIOS hakkında envai çeşit bilgiye ulaşmamızı sağlayan sihirli komuttur. Örneğin, eskiden beri merak etmiştim bilgisayar ne kadarlık memory kaldırabilir diye. Bilgisiyar kitapçığında bile ulaşamadığım bu bilgiye dmidecode ile görünce oldukça sevinmiştim.

dmidecode, bize özünde BIOS, sistem, anakart, işlemci, hafıza, bağlantı ve slotlar hakkında bilgi verir.

Sistemde kurulu değilse ilk olarak programı yükleyelim.

#sudo yum install dmidecode -y

Program "-t" ile parametre alır. Listesi şu şekildedir:

      Parametre   Açıklama
       ----------------------------------------
          0   BIOS
          1   System
          2   Base Board
          3   Chassis
          4   Processor
          5   Memory Controller
          6   Memory Module
          7   Cache
          8   Port Connector
          9   System Slots
         10   On Board Devices
         11   OEM Strings
         12   System Configuration Options
         13   BIOS Language
         14   Group Associations
         15   System Event Log
         16   Physical Memory Array
         17   Memory Device
         18   32-bit Memory Error
         19   Memory Array Mapped Address
         20   Memory Device Mapped Address
         21   Built-in Pointing Device
         22   Portable Battery
         23   System Reset
         24   Hardware Security
         25   System Power Controls
         26   Voltage Probe
         27   Cooling Device
         28   Temperature Probe
         29   Electrical Current Probe
         30   Out-of-band Remote Access
         31   Boot Integrity Services
         32   System Boot
         33   64-bit Memory Error
         34   Management Device
         35   Management Device Component
         36   Management Device Threshold Data
         37   Memory Channel
         38   IPMI Device
         39   Power Supplymadan evvel parametre listesini görelim:

Bu 40 parametre kategorik olarak şöyle sınıflandırılır:

       Başlık     Parametre
       ------------------------------
       bios        0, 13
       system      1, 12, 15, 23, 32
       baseboard   2, 10
       chassis     3
       processor   4
       memory      5, 6, 16, 17
       cache       7
       connector   8
       slot        9

Demek istediğim şu, hafıza ile ilgili bir işlem yapmak istediğimde "dmidecode -t " yazdıktan sonra parametresini yazacağım.

Örneğin bilgisiyarın kaldırabileceği maksimum hafıza miktarını öğrenmek istersek:

#sudo dmidecode -t 16


Görüldüğü üzere sistemim 4GB kadar hafızaya kadar genişletilebilirmiş. Peki ama ne kadarlık hafıza sistemde yüklü ve hangi slotlarda?

#sudo dmidecode -t 17


Her ne kadar ekran görüntüsünde 1GB görünse de aşağıya kaydırıldığında sistemimde 1.5GB DDR 2 memory yüklü olduğunu görüyoruz.

İlginizi çeken diğer parametrelerle komutu çalıştırarak bilgisiyar hakkında detaylı bilgilere erişebilirsiniz.

Öte yandan "lshw" ile sistemdeki tüm donanımı görebilirsiniz

"lspci" ile tüm PCI donanımı, "lsusb" ile de USB bilgilerine ulaşabilirsiniz.

Q.E.D.