2011년 3월 5일 토요일

주가예측 유전자

Gene,
유전자,
遺傳子

유전의 기본 단위로 생믈의 세포를 구성하고 유지하는데 필요한 정보가 담겨 있다.

위키에 따르면,
현대 유전학의 정의: 게놈 서열의 특정한 위치에 있는 구간으로서 유전형질의 단위가 되는 것
즉, DNA 서열 가운데 정보를 갖고 있는 부분


주식예측이론의 유전자는? 즉 최소 정보 단위는?
1. 정해진 기간(시간) 동안의 상승 또는 하락율 (범위)
2. 상기 조건을 만족하는가 또는 만족하지 않는가?

위의 최소 정보 단위의 조합으로 주식을 예측할 수 있을까?
엘리어트가 1946년 그의 저서 "Nature's Law - The Secret of the Universe"에서 말한 "우리가 그 이유를 정확히 알 수는 없으나, 우리를 둘러싼 우주을 움직이는 어떤 법칙이 존재하고 있음을 경험으로 알 수 있다."를 찾아 낼 수 있을까?

최소 정보 단위를 다시 정리하면,
1. 시기 (예측하고 싶은 날, 즉 오늘부터 언제전인가?): 하루 전이면 1, 30일 전이면 30 (주가 거래일 기준)
2. 기간 (1번 시기에서 며칠 동안의 변동인가?)
3. 변동율 (1번 시기부터 2번 기간동안 몇% 변동으로 평가 할 것인가?)
4. 범위 (3번 변동율 이상 또는 미만): +이면 변동율보다 높아야 하며, -면 낮아야 함
5. ...??
이 조건을 만족하면 오늘의 주가가 상승하고 만족하지 못하면 하락한다?

2010년 4월 27일 화요일

안드로이드에서 구글맵 사용하기

Using Google Maps in Android (영문 소개 기사 위치)

 http://mobiforge.com/developing/story/using-google-maps-android#comment-6387

 

  1. 프로젝트 생성

     

  2. 구글 Maps API Key 얻기

    http://code.google.com/android/add-ons/google-apis/mapkey.html
    한글로 자세히 설명해준 사이트
    http://appleandroidjunhulove.tistory.com/entry/안드로이드Android-MAP-API-KEY

     

  3.  AndroidManifest.xml 화일 수정하기 (초록색 바탕 글씨)

    1.  <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="
      http://schemas.android.com/apk/res/android"
      package="net.learn2develop.GoogleMaps"
      android:versionCode="1"
      android:versionName="1.0.0">
      <application android:icon="@drawable/icon" android:label="@string/app_name">
      <uses-library android:name="com.google.android.maps" />
      <activity android:name=".MapsActivity"
      android:label="@string/app_name">
      <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      </activity>
      </application>
      <uses-permission android:name="android.permission.INTERNET" />
      </manifest>
     
    

  4. 맵이 보이도록 main.xml 수정하기 (apiKey는 2번에 얻은 값을 입력)

    1.  <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="
      http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">

      <com.google.android.maps.MapView
      android:id="@+id/mapView"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:enabled="true"
      android:clickable="true"
      android:apiKey="0l4sCTTyRmXTNo7k8DREHvEaLar2UmHGwnhZVHQ"
      />


      </RelativeLayout>
     
    
      
    

  5.  .java화일 수정하기

    1.  package net.learn2develop.GoogleMaps;

      import com.google.android.maps.MapActivity;
      import com.google.android.maps.MapView;
      import android.os.Bundle;

      public class MapsActivity extends MapActivity
      {
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState)
      {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      }

      @Override
      protected boolean isRouteDisplayed() {
      return false;
      }

      }

     

     

 

이 글은 스프링노트에서 작성되었습니다.

2010년 4월 24일 토요일

안드로이드에서 sms 보내고 받기

안드로이드 개발 환경을 세팅하긴 했는데, 뭐부터 시작해야 할지 몰라 고민했다.
재밌게 프로그래밍하는 방법 중에는 간단한 예제들을 해보는 것인데,
구글링으로 SMS를 보내고 받는 프로그래밍 팁을 소개해주는 사이트를 발견했다.
상당히 자세히 설명해주고 있어 나같은 초보자에게 정말 유용한 것 같다.


주요 코드는 다음과 같다.
private void sendSMS(String phoneNumber, String message)
    {        
        PendingIntent pi = PendingIntent.getActivity(this, 0,
            new Intent(this, AndroidSms.class), 0);                
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, pi, null);        
    }  


public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;
        String str = "";            
        if (bundle != null)
        {
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];            
            for (int i=0; i<msgs.length; i++){
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                
                str += "SMS from " + msgs[i].getOriginatingAddress();                    
                str += " :";
                str += msgs[i].getMessageBody().toString();
                str += "\n";        
            }
            Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
        }
    }

모든 코드를 이해하지는 못했지만, C#으로 WM프로그래밍하는 것만큼 간단한 것 같다.

그 다음 목표는 문자메시지함 보는 것...

2010년 1월 23일 토요일

mcalendar 0.9b

v0.9b updated at 2010/01/29


수정사항


1. 자동등록시, 최근 날짜부터 등록되는 현상 해결

2. 일정 등록시 busy status를 option에서 지정할 수 있게 함.

3.  2009년 12월 SMS 등록시 2010년 12월로 등록되는 문제 해결

4. 등록되어 있는 거래 내역 수정시 기존 내역이 삭제가 안되는 문제


0.9버젼 만들면서 많은 부분이 바뀌었는데, 대부분의 버그는 잡힌 것 같습니다.

사용해 보시고 불편한 점을 알려주시기 바랍니다.


--------------------------------------------------------------------------------


v0.9a updated at 2010/01/24

0.9a 버젼 등록.. (0.9버젼 긴급 수정본)

 

몇가지 버그와 사용상 불편한 점을 수정하였습니다.

 

1. Register에서 카테고리와 메모가 입력 안되는 문제 해결

2. SMS 메시지의 Filtering 옵션이 자동저장되도록 수정 (기존에는 새로 시작하면 초기화 되었음)

3. 메시지 보는 화면에서 한번에 자동 등록이 되도록 Register all 버튼 추가

   (기존에 등록된 문자를 제외한 것만 등록되도록 함)

4. 문자메시지 Filter에 Unregistered 옵션 추가 (금전거래 문자 중 등록이 안된 것만 보여줌

5. 문자메시지 Filter에서 날짜 수정에 들어가면 "always from start day" 옵션 추가

    이 기능은 매달 시작일로 정한 날부터 문자를 볼 수 있게 함

6. 기존에 일정에 등록된 금전거래 내역에서도 동일하게 매달 시작일부터 볼 수 있는 기능 추가

7. 아이콘 네모로 보이는 문제 해결

 

그리고 기타 자질구레한 것이 조금씩 수정되었습니다.

 

기존에 받으신 분들께는 죄송하지만 0.9a를 다시 받으셔서 사용하시기 바랍니다.


===============================================================================


v0.9 updated at 2010/01/22

처음에 mcalendar를 개발할 때 생각했던 것보다 기능이 많이 추가되어
이번에 프로그램을 처음부터 손을 댔습니다.
새로운 기능이 추가되고 필요없다고 되는 기능은 뺐습니다.

기본 사용환경: Windows Mobile 6.0이상, .Net Compact Framework 3.5이상, ms-sms 설치
                     (.NET Compact Framework 3.5 Redistributable Download)

<주요 기능>
1.  금전 거래 내역 입력
   - Cash, Card, Bank 세가지 타입으로 입력 가능 (기존과 동일)
   - Card와 Bank를 수동으로 입력시에도 카드사와 은행을 선택할 수 있음
     (신규 금융사는 옵션에서 카드사와 은행을 구분하여 미리 등록해야 함)
   - 금액 입력시 소수점 입력 가능 (달러나 유로화 사용 가능)
      → 모든 금액뒤에는 단위를 붙이지 않았음
   - 금전거래로 등록된 일정의 메모에 매달 총 사용금액, 금융사별 사용금액을 알 수 있음
     (은행 및 현금 거래는 공통 시작일 기준, 카드사는 각 카드사별 시작일 기준)

2. SMS 메시지 보기 및 등록
   - SMS 문자 메시지함에 저장되어 있는 문자를 보고 바로 등록할 수 있음
     (이부분이 기존과 가장 많이 바뀐 부분임)
   - Filter를 통해 문자 메시지 중에서 등록이 가능한 것만 볼 수 있고
     등록하기 버튼을 누르면 등록화면이 떠서 등록 가능함
   - 따라서 mcshell을 없앴음. 하루에 한번 또는 일주일에 한번 정도 저장된 메시지를 확인하고
     수동으로 등록하면 됨 → 항상 실행될 필요가 없어짐
   - 현재 자동 분석이 가능한 금융사는 다음과 같음
      - 삼성카드, KB카드, KB체크카드, 신한카드, 현대카드, 롯데카드, BC카드,
        외환카드, 씨티카드, 농협체크카드, 하나카드, 신한체크카드 (총 12개사)
      - 우리은행, 새마을금고, 제일은행, 하나은행, KB, 신한은행, 부산은행,
        동양종금, 농협, 우리투자증권 (총10 개사)

3. 등록된 금전 거래 내역 확인 및 수정
   - mcalendar내에서 일정에 등록되어 있는 금전거래 내역을 확인하고 볼 수 있음
   - Filter 기능을 통해, 원하는 타입, 금액, 회사, 날짜 등을 설정하여 볼 수 있음

4. 옵션
   - 카드사, 은행사 수정 및 등록 가능
     특히 카드사는 카드사별 시작일을 따로 지정할 수 있음
   - 카테고리 등록 및 수정 가능

5. mcshell과 mcconcole은 제거함
   - sk-sms를 사용하시고 홍길동님 문자어플(naver 카페)을 사용하시는 분은,
     mcalendar.exe를 외부 실행프로그램으로 등록시켜 사용하시면 됩니다.

이외에 가능하면 한 손으로 쉽게 사용가능하도록 GUI도 많이 바꿨습니다.
제가 사용하는 옴니아에서는 테스트시 별 문제가 없었으나,
사용해 보시고 버그나 불편한 점이 있으면 알려주세요.

아래 그림은 QVGA화면의 영문 윈도 모바일에 실행했을 때 캡춰한 것임




2010년 1월 2일 토요일

우분투에 안드로이드 개발환경 설정하기

안드로이드용 프로그램을 개발해보려고 인터넷을 뒤지다 보니 필요한 정보들이 Android Developers 사이트에 잘 정리되어 있었다. 문제는 모두 영어여서 그 많은 내용을 다 읽기가 쉽지가 않다는 것이다.

백문이 불여일견이어서, 실제로 간단한 프로그램이라도 해보면서 공부를 해보는 것이 좋을 것 같아 개발환경을 설치할려고 하니, 그것도 쉬운 것은 아니었다.
그래서 실제 해본 내용을 정리해 보았다.

1. 우분투 설치: http://www.ubuntu.com/ 가서 Desktop을 다운 받아 설치한다.

2. Eclipse 설치: 우분투 설치 후 Ubuntu Software Center에서 Eclipse를 선택하여 설치한다.
    Eclipse는 Visual Studio와 같은 개발 IDE이다.

   Linux용으로 다운 받은 후 개인 home 폴더 밑에 바로 설치하면 됨
   ~/.bashrc 화일을 열어서 export PATH=${PATH}:~/android-sdk-linux_86/tools 라인을 맨마지막에 추가

4. ADT (Android Development Tools) 설치: Eclipse에 안드로이드 개발환경을 추가하기 위한 작업
    eclipse에서 Help 메뉴 밑의 install new software을 실행
    설치가 안되는 문제 발생시 여기 가면 해결책 있음 http://miraclekim.tistory.com/11
    
   * 다음과 같은 에러가 발생하면서 설치가 안될 때
     An error occurred while installing the items
     session context was:(profile=PlatformProfile,
     phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Install,
     operand=null --> [R]org.eclipse.ant.ui 3.4.1.v20090901_r351,
     action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction).
     The artifact file for osgi.bundle,org.eclipse.ant.ui,
     3.4.1.v20090901_r351 was not found.
     -> 해결책: Go to System -> Administration -> Synaptic Package Manager and search for "eclipse"
                     Then mark "eclipse" for install

5. SDK Components 추가: 설치한 Android SDK중에서 필요한 SDK와 Emulator만 Ubuntu에 추가하는 것
    터미널에서 android를 친 후 Available Packages에서 필요한 것 선택

6. AVD (Android Virtual Devices) 생성하기: 추가된 Emulator, 즉 가상의 안드로이드 폰을 생성하는것
    터미널에서 "android list targets"한 후 target id를 기억하고,
    "android create avd --target 2 --name my_avd1.5"와 같이 명령을 내림
    또는 터미널에서 android를 친 후 아래 그림과 같이 Virtual Devices에서 New..를 하여 생성할 후 있음

7. Eclipse에서 Project 생성 ...
    http://developer.android.com/resources/index.html 여기 있는 튜토리얼 보면서 따라하기.

-------

다 설치하고 보니 다음 사이트에 나름 정리가 잘 되있었다. 항상 Search하자...쩝

2009년 12월 23일 수요일

mcalendar 0.8a

v0.8a updated at 2009/12/23

1. 카드사와 은행 문자 메시지 사용 내역 추가시, 시작일로 부터 합산되는 값이
   현재 추가되는 값을 반영하지 못하는 문제 해결

2. Calendar에서 사용내역을 지우거나, 수정할 때 시간이 오래 걸리는 것을 빠르게 수정함
   (포켓 아웃룩을 수정하는 것이기 때문에 엄청 빨라지지는 않음)

C#으로 ms-sms 컨트롤 하기

Pocket Outlook의 데이터를 접근하여 컨트롤하기 위해서 POOM (Pocket Outlook Object Model)을 이용하면 쉽게 가능하다. 하지만 문자메시지는 POOM으로 접근이 불가능하여 MAPI (Messaging Application Program Interface)를 이용해야 한다.

C#으로 MAPI를 이용하는 것은 쉽지 않는 일이다.

CodeProject 사이트에 다음과 같은 이름의 내용이 있는데,Pocket PC and Smartphone 99% .NET MAPI 여기에 나온 라이브러리를 이용하면 쉽게 가능할 것 같다.