MetaTrader 4 설치하기

마지막 업데이트: 2022년 4월 24일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

Smart playlists로 음악파일의 목록을 만들어주면, 좀더 심플한 목록을 볼 수 있지만..
이 작업은 노가다가 심하다는 단점이 있다. ㅡㅡ;;
나중에 이것을 어떻게 간단하게 만들어 줄수 있는지 연구(?)해 볼 참이다.

MetaTrader 4 설치하기

지금까지는 NAS의 가장 기본 기능을 끝냈다.
Samba 서버를 이용하여, 언제 어디서나 네트워크 드라이브로 설정할 수 있는 기능을 완성했으며,
덤으로 SSH나 FTP 서버도 설치했다.
그럼 이제부터, 재미있는 기능들을 설치해 보도록 하자.

처음은 아이튠즈 서버다. 리눅스용 아이튠즈 서버는 MetaTrader 4 설치하기 firefly(or mt-daapd)가 있다. apple의 DAAP(Digital Audio Access Protocol)를 구현한 것으로, PC의 아이튠즈나 아이폰, 안드로이드 등에서 사용할 수 있다.

x11vnc xvnc4viewer tk freenx-session-launcher expect freenx-rdp libvncserver0 freenx-smb freenx-vnc tcl tcl8.5

x11vnc xvnc4viewer tk freenx-session-launcher expect freenx-rdp libvncserver0 freenx-smb freenx-vnc tcl tcl8.5

x11vnc xvnc4viewer tk freenx-session-launcher expect freenx-rdp libvncserver0 freenx-smb freenx-vnc tcl tcl8.5

x11vnc xvnc4viewer tk freenx-session-launcher expect freenx-rdp libvncserver0 freenx-smb freenx-vnc tcl tcl8.5

x11vnc xvnc4viewer tk freenx-session-launcher expect freenx-rdp libvncserver0 freenx-smb freenx-vnc tcl tcl8.5

x11vnc xvnc4viewer tk freenx-session-launcher expect freenx-rdp libvncserver0 freenx-smb freenx-vnc tcl tcl8.5

x11vnc xvnc4viewer tk freenx-session-launcher expect freenx-rdp libvncserver0 freenx-smb freenx-vnc tcl tcl8.5

x11vnc xvnc4viewer tk freenx-session-launcher expect freenx-rdp libvncserver0 freenx-smb freenx-vnc tcl tcl8.5

이렇게 하면 아이튠즈에서 아이튠즈 서버가 보인다.
그러나, 한참을 기다려도 음악파일 목록 따위는 보이지 않고, 뺑글뺑글 돌아가는 서버이름만. ㅡ.ㅜ
아이튠즈 10.5 이상은 패치를 해야만 한다.

[email protected]:~# aptitude MetaTrader 4 설치하기 install gpa devscripts debhelper dpatch libflac-dev libvorbis-dev libmpcdec-dev libavcodec-dev libavformat-dev libid3tag0-dev libtagc0-dev libavahi-client-dev libsqlite3-dev libjs-prototype libjs-scriptaculous avahi-daemon autotools-dev

위와 같이 작업하면 일단 아이튠즈에서 서버가 떠있는 것은 확인할 수 있다. 아이튠즈 서버 관리는 웹브라우저를 통해서도 가능하다.
아이피 주소와 포트번호만 넣어주면 된다. 본인의 경우는 http://192.168.10.5:3689 로 입력하였다.
그러면 아래와 같은 화면을 볼 수 있을 것이다.
사용자 이름은 admin 비밀번호는 mt-daapd.conf 에서 입력한 패스워드를 입력하면 된다.

MetaTrader 4 설치하기
일단, configuration 항목에 가서 Music Folder의 위치를 입력한다.
여기까지만해도 아이튠즈에서 음악파일 목록을 확인할 수 있을 것이다.


Smart playlists로 음악파일의 목록을 만들어주면, 좀더 심플한 목록을 볼 수 있지만..
이 작업은 노가다가 심하다는 단점이 있다. ㅡㅡ;;
나중에 이것을 어떻게 간단하게 만들어 줄수 있는지 연구(?)해 볼 참이다.

위의 작업이 끝났으면 아래와 같이 아이튠즈에서도, iPhone에서도, 안드로이드에서도 우리의 홈서버가 보유하고 있는 모든 음악을 서비스 받을 수 있다.

tailwindcss with ReactJS

tailwindcss는 html에 class를 이용해서 화면을 구성하는 방식의 css 라이브러리 입니다.
이 방식의 장점은 HTML만으로 직관적인 화면을 구성 할 수 있습니다.

ReactJS에서 tailwindcss를 사용하기 위해서는 몇가지 설정을 해야 합니다.

다음 설정을 따라 하면 tailwindcss를 사용할 수 있습니다.

작업을 시작하기 전에 다음 사항을 유의하셔요.

  • nodejs 12.13.x 이상 버젼만 가능합니다.

1. react 프로젝트 생성하기

2. tailwind css 설정하기

Create React App은 아직 postcss8을 지원하지 않습니다. 따라서 postcss7을 이용합니다.

3. CRACO 설치 & MetaTrader 4 설치하기 설정

Create React App에서 postcss 설정을 지원 하지 않습니다. tailwind 설정을 위해서 craco를 사용합니다.

package.json 에서 start, build, test 명령어를 다음과 같이 설정을 변경 합니다.

그리고 craco.config.js 파일을 생성합니다.
해당 파일에서는 tailwindcss 와 autoprefixer plugin을 설정합니다.

4. tailwind 설정 파일 생성

tailwind.config.js 파일을 생성합니다.

최상의 디렉토리에 최소 설정이된 tailwind.config.js 파일이 생성됩니다.

여기에 purge 설정을 추가 합니다.

5. tailwind css 반영

./src/index.css 에 다음을 추가 합니다.

tailwind의 base, components, utilities를 사용하도록 설정이 되었습니다.

6. tailwind css 예제 사용

App.js 에 다음 코드를 추가 합니다.

7. 결과 확인

localhost 서버를 띄어서 확인해봅니다.

http://localhost:3000 으로 접근 하면 다음과 같은 화면을 확인 할 수 있습니다.

코드를 보면서 직관적인 부분이 장점으로 다가오지만, html의 class가 너무 길어져서 불편하게 느껴지기도 했습니다.
또한, React에서는 class 를 className으로 Attribute를 변경해야합니다.

MetaTrader 4 설치하기

☞ Named Pipe 기법을 이용하여 데이터를 전송받아 거래하는 EA, Chiggu에서 전송된 가격을 분석하여 주문을 내고(Open Spread), 청산(Close Spread)한다.


☞ 설치는 Chiggu1(서버명 gguri), Chiranai2(서버명 chiggu)를 하나의 MetaTrader 4 설치하기 Broker에 설치하고, 다른 Broker에 Chiggu2(서버명 chiggu), Chiranai1(서버명 gguri)를 설치하여 각기 다른 차트에 Attach, 즉 하나의 통화를 거래하기 위해서는 동일 TF, Symbol당 2개의 차트가 필요( 하나의 pipe를 이용하여 =>, 다른 pipe를 이용하여


☞ 실제 청산은 ClosingTime에서 설정된 가격이후에 조건충족시 청산가능. 다른 Broker에 하나씩 설치되어 다른 서버명(gguri, chiggu)을 가지고 독립적으로 거래 및 청산을 수행한다.

☞ Real Test 결과 데모버전의 경우 Peak Time에서나 뉴스Time과 같이 변동성이 심한 경우 데모가 리얼에 비해 느려지는 현상이 발생하여 신호의 왜곡현상이 발생하여 V0.4에서는 Close 조건을 슬리피지 이상 수익발생하고 청산스프레드 충족시 청산으로 조건을 변경할 필요가 있다.

/*
Time Frame : Any Pairs
Pairs : EURUSD, GBPUSD, USDJPY, EURGBP, AUDUSD, USDCAD 등(브로커별로 확인요망)
Based Indicator : Named Pipe
Start Date : 2012-09-20
Logic : Data Sender(Named Pipe)

0.1 Version
- Named Pipe mqh file(Clent, Server)을 이용하여 가격정보 전달 및 화면 표시 기능
- Named Pipe mqh file을 하나로 통합
- USDJPY 과 같은 통화에 대한 대응
- Named Pipe mqh file을 내재화
- Buy, Sell 조건의 MetaTrader 4 설치하기 기초작업(스프레드 차이 변수화 작업)
- Buy, Sell 주문 및 청산 로직 추가
- Pipe 추가 및 가격정보 역전송
- 수익계산 및 오더수 계산하여 화면표시
- Ready 추가
- Adjust함수 추가, magicnumber 수정
- 화면표시 정보수정
- Reverse와 분리
- Ready 내생변수
- Ready값에 따른 주문변경
- 화면표시 정보수정

#define EA_NAME "YS_NP_Sub_chiggu_V0.4"
#define Copyrights ""
#define Create_Date "2012-09-20"

#import "stdlib.ex4"
string ErrorDescription(int a0);

// Named Pipe Include File Import

#define DEFAULT_MAX_PIPES 20

// Base name to use for pipe creation
#define PIPE_BASE_NAME "\\\\.\\pipe\\mt4-"

#define GENERIC_READ 0x80000000
#define GENERIC_WRITE 0x40000000
#define OPEN_EXISTING 3
#define INVALID_HANDLE_VALUE -1
#define PIPE_ACCESS_DUPLEX 3
#define PIPE_UNLIMITED_INSTANCES 255
#define PIPE_NOWAIT 1
#define PIPE_TYPE_MESSAGE 4
#define PIPE_READMODE_MESSAGE 2
#define PIPE_WAIT 0

int CreateNamedPipeA(string pipeName,int openMode,int pipeMode,int maxInstances,int outBufferSize,int inBufferSize,int defaultTimeOut,int security);
int PeekNamedPipe(int PipeHandle, int PassAsZero, int PassAsZero2, int MetaTrader 4 설치하기 PassAsZero3, int & BytesAvailable[], int PassAsZero4);
int CreateFileA(string Filename, int AccessMode, int ShareMode, int PassAsZero, int CreationMode, int FlagsAndAttributes, int AlsoPassAsZero);
int CloseHandle(int fileHandle);
int ReadFile(int FileHandle, int BufferPtr, int BufferLength, int & BytesRead[], int PassAsZero);
int WriteFile(int FileHandle, string Buffer, int BufferLength, int & BytesWritten[], int PassAsZero);
int MulDiv(string X, int N1, int N2);

extern string ServerName = "chiggu"; // 서버이름설정, 통화마다 다르게 설정됨.
extern int RetryForSeconds = 0;
extern int MinBars = 100; // 최소 다운로드 Bar의 수
string PriceInfo = "";

string NowSym, ServerN,StartDay; // EA 시작일 및 심볼 조정변수
// MarketInfo 정보를 받는 변수
string broker,servername,mytime,sympoint,spread;
double equity,reqmargin,stopout,minlot,maxlot,LotStep,asks,bids;
int leverage,mydigit,stoplevel,freeze;

int glbPipeCount = DEFAULT_MAX_PIPES;
int glbPipe[DEFAULT_MAX_PIPES];
string glbPipeName;

bool SendPipeMessage(string ToPipe, string Message, int RetryForSeconds = MetaTrader 4 설치하기 0) <
// Try an initial send
if (SendPipeMessage2(ToPipe, Message)) <
return (true);

> else <
// The initial send failed. Consider doing retries
if (RetryForSeconds

// Retries not allowed
return (false);

> else <
// Keep retrying for n seconds
int RetryUntilTime = TimeLocal() + RetryForSeconds;
while (TimeLocal() < RetryUntilTime) <
if (SendPipeMessage2(ToPipe, Message)) <
return (true);
> else <
// Keep retrying - with a small pause between attempts
Sleep(100);
>
>

bool SendPipeMessage2(string ToPipe, string Message) <
bool bReturnvalue = false;

string strPipeName = StringConcatenate(PIPE_BASE_NAME , ToPipe);

// Try opening a connection to a free instance of the pipe
int PipeHandle = CreateFileA(strPipeName, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (PipeHandle == INVALID_HANDLE_VALUE)

> else <
int BytesWritten[1] = ;
WriteFile(PipeHandle, Message, StringLen(Message), BytesWritten, 0);

if (BytesWritten[0] > 0) <
bReturnvalue = true;
> else <
bReturnvalue = false;
>

void DestroyPipeServer() <
for (int i = 0; i < glbPipeCount; i++) <
CloseHandle(glbPipe[i]);
>
return;
>

// 거래 가능여부 확인
if(IsTradeAllowed()) <
Print("거래 가능합니다!");
>

// Period Protection
if(Period() != PERIOD_M1) <
Alert("1분봉 차트에 붙이셔야 합니다.");
return(0);
>

// EA 시작일 설정
StartDay = TimeToStr(TimeCurrent(),TIME_DATE);

// 접미사형태의 통화대처를 위해 심볼명의 6자리까지 심볼명으로 지정
NowSym = StringSubstr(Symbol(), 0, 6);
ServerN = StringConcatenate( ServerName , NowSym );

int deinit() <
// Destroy the pipe server
DestroyPipeServer();
return(0);
>

// Server와 연결이 안된 경우
if(!IsConnected()) <
Print("연결해주세요!");
return(0);
>

if(!IsTesting()) <
if(!IsDllsAllowed() || !IsExpertEnabled()) <
Print("DLL 사용할 수 있게 옵션에서 풀어주세요. 혹은 EA아이콘 확인요망!");
return(0);
>
>

bool DataEnabled = TRUE;
if(iBars(Symbol(), 0) < MinBars) <
DataEnabled = FALSE;
Print ("아! Bar가 아직 모자라!ㅠㅠ..");
>

broker = AccountCompany();
servername = AccountServer();
mytime = TimeToStr(TimeCurrent(),TIME_SECONDS);
equity = AccountEquity();
leverage = AccountLeverage();
reqmargin = MarketInfo(Symbol(), MODE_MARGINREQUIRED);

double asks = MarketInfo(Symbol(),MODE_ASK);
double bids = MarketInfo(Symbol(),MODE_BID);

stoplevel = MarketInfo(Symbol(), MODE_STOPLEVEL);
freeze = MarketInfo(Symbol(), MODE_FREEZELEVEL);
stopout = AccountStopoutLevel();
mydigit = MarketInfo(Symbol(), MODE_DIGITS);
sympoint = DoubleToStr(MarketInfo(Symbol(),MODE_POINT),mydigit);
minlot = MarketInfo(Symbol(), MODE_MINLOT);
maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
LotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
spread = DoubleToStr(NormalizeDouble(asks-bids,mydigit),mydigit);

string writes; // 화면에 표시할 데이타의 문자열
string DataFeeds[4]; // 화면에 표시 및 전송할 데이타의 배열

/*
string TimeToStr(datetime value, int mode=TIME_SECONDS), TIME_SECONDS gets result as "hh:mm:ss".
현재시각을 "hh:mm:ss" 형태로 표시하여 저장, ASK, BID가격도 함께 배열에 저장
*/
DataFeeds[0]=TimeToStr(TimeCurrent(),TIME_SECONDS);
DataFeeds[1]=adjust(asks);
DataFeeds[2]=adjust(bids);
DataFeeds[3]=StringSubstr(DoubleToStr(MarketInfo(Symbol(), MODE_DIGITS),1),0,1);

// DataFeeds배열의 MetaTrader 4 설치하기 4개값을 화면에 표시
writes = StringConcatenate("EA Name : ",EA_NAME," , Copyright : ",Copyrights," , EA제작일_",Create_Date," , 현재시간 : ",mytime," 평가잔액 = $",equity," Leverage_",leverage,":1, 1Lot당 필요증거금 : $",reqmargin)+"\n";
writes = writes + StringConcatenate("Broker : ",broker," Server : ",servername,", EA시작일_",StartDay," StopLevel_",stoplevel," Freeze Level_",freeze," Stop Out_",stopout,"%, Digit_",mydigit)+"\n";
writes = writes + StringConcatenate("접속명 : ",ServerN,", Point_",sympoint," Min Lot_",minlot," Max Lot_",maxlot," Lot Step_",LotStep," Spread_",spread," Data_",DataEnabled)+"\n";
writes = writes + "===========================================================================================================" + "\n";
writes = writes + StringConcatenate("TimeSeconds : ",DataFeeds[0], " Ask = ",DataFeeds[1]," MetaTrader 4 설치하기 Bid = ", DataFeeds[2], ", Digit = ",DataFeeds[3]);
Comment(writes);

PriceInfo = StringConcatenate(DataFeeds[3], DataFeeds[0],";", DataFeeds[1],";", DataFeeds[2]) ;

if ( SendPipeMessage(ServerN, PriceInfo, RetryForSeconds) ) < // 3
return;
> // 3
else
< // 4
Print("앗, 접속불량!");
return;
> // 4

MetaTrader 4 설치하기

그 전에 필요한 소프트웨어들이 미리 설치돼 있어야 합니다.

Required software

The following software is required to build and run the Playlist tutorial example application:

  • A Linux or OS X machine or later 3 or later or later or later, or Cassandra 2.1 or later
  • The playlist example code
  • A code editor of your choice

저는 제 맥북에 설치해 보려고 합니다.

2. 다운로드 받은 dmg 파일을 더블 클릭한 후 아래 가이드 대로 진행한다.

Linux: By default, DataStax Enterprise is installed in the /home/user/dse directory.

Mac OS X: By default, DataStax Enterprise is installed in the /usr/share/dse/ directory.

If you use the No Services option, you can change the location of the dse directory. If you install as a service, DataStax Enterprise can only be installed in the /usr/share/dse directory.

Use Simple Install .

Installs DataStax Enterprise with the default path names and options.

Network interface for the DataStax Enterprise server.

Select No Services - installs the DataStax Enterprise server as a stand-alone process.

A non-root install doesn't use services.

Select Cassandra Node .

  • Cassandra node

Cassandra nodes use the seed node list for finding each other and learning the topology of the ring.

Select OpsCenter Address: 127.0.0.1 .

The agent provides an interface between DataStax OpsCenter and DataStax Enterprise.

설치가 끝나면 바탕화면에 DataStax Enterprise shortcut 이 생깁니다.

이 shortcut 안으로 들어가면 start_cassandra , start_datastax_agent 를 포함해 여러가지 실행 파일들이 있습니다.

이렇게 하면 간단하게 카산드라 설치가 끝납니다.

터미널을 실행해서 카산드라가 설치된 폴더로 이동합니다.

숏컷을 실행하면 해당 폴더를 알 수 있습니다.

그 폴더에서 bin 폴더 안으로 들어갑니다.

그곳에서 아래와 같이 명령어를 칩니다.

(그 전에 숏컷에서 start_datastax_agent 를 실행해야 합니다.)

그러면 아래와 같은 화면을 보실 수 있습니다.

이렇게 되면 DataStax Enterprise 이 실행중 이라는 얘기입니다.

이제 Playlist example code 를 받으려면 아래와 같이 받습니다.

그 다음 example application's dependencies 를 다운받으려면 메이븐을 사용해야 하는데 제 컴에 아직 메이븐을 설치하지 않아서 안 되네요.

MetaTrader 4 설치하기

1. 리눅스 설치 하기 (Ubuntu 14.04)

2. 쿠다 설치 하기

1. 엔비디아 홈페이지 (쿠다 툴킷)

2. Getting Started Linux

3. 그래픽 카드 버젼 확인

$ lspci | grep -i nvidia

4. GCC 버젼 확인

5. 쿠다 툴킷 다운받기

- 우분투 64비트 DEB 받기

6. 우분투에서 설치하기

- 위에서 DEB를 받은 폴더(보통 download)로 이동 한 뒤,

$ sudo apt-get update

$ sudo apt-get install cuda

7. 환경 변수 설정하기

- 열린 창에서 다음 두 줄을 맨 뒤에 추가한다.

8. 잘 설치되었는지 확인

이러고 나면 시간이 좀 걸려서 수많은 예제를 다 compile한다.

그리고 여기 있는 것들 돌려보면 된다.

3. ROS 설치 하기 (Indigo)

1. 우분투용 ROS 인디고 받기

- 1. Ubuntu 14.04 (Trusty) - 서버 추가

- 2. Set up your keys - ROS 키 추가

- 3. Installation 설치하기

First, make sure your Debian package index is up-to-date:

Desktop-Full MetaTrader 4 설치하기 MetaTrader 4 설치하기 Install: (Recommended) : ROS, rqt , rviz , robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception

Indigo uses Gazebo 2 which is the default version of Gazebo on Trusty and is recommended. If you need to upgrade to Gazebo 3 see these instructions about how to upgrade the simulator.

- 4. Dependency를 잡아주는 tool

Before you can use ROS, you will need to initialize rosdep . rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.

- 5. Environment setup

It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched:

- 6. Initialize rosdep

Before you can use ROS, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.

- 7. Install python on Ubuntu, run:

Create a ROS Workspace

These instructions are for ROS Groovy and later. For ROS Fuerte and earlier, select rosbuild.

- src 폴더 만들고, catkin 초기화

Even though MetaTrader 4 설치하기 the workspace is empty (there are no packages in the 'src' folder, just a single CMakeLists.txt link) you can still "build" the workspace:

- catkin_make 하기

The catkin_make command is a convenience tool for working with catkin workspaces. If you look in your current directory you should now have a 'build' and 'devel' folder. Inside the 'devel' folder you can see that there are now several setup.*sh files. Sourcing any of these files will overlay this workspace on top of your environment. To understand more about this see the general catkin documentation: catkin. Before continuing source your new setup.*sh file:

Now that your environment is setup, continue with the ROS file system tutorial.


0 개 댓글

답장을 남겨주세요