성공 알고리즘 EA

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

plzrun's algorithm

주변에 처음 시작하는 사람들이 내게 PS 공부 방법에 대한 고민을 자주 털어놔서 글로 정리해보려고 한다.

ps를 처음 시작하면 online judge에 들어가서 몇 문제를 풀어봤을 것이다.

근데, 문제를 풀어봐도 내 실력이 느는 느낌도 안나고,

문제 하나 푸는데 시간도 엄청 걸리고,

풀 수 있는 문제도 거의 없다.

이때 주변에 잘하는 사람이 있어서 도움을 받으면 최고로 좋은 케이스지만,

보통 나 같은 사람들은 도움 받을 사람도 없고

인터넷을 뒤적뒤적하고 책을 찾게 된다.

근데 또 책은 왜이렇게 진도가 안나가?

코드를 읽으면 자꾸 모르는 STL이 등장하고,

이거 찾아보고 익히는데 또 한참 걸리고,

나중에 돌아와서는 다시 코드 로직을 뜯어봐야하고

다시 내가 문제를 직접 풀어보는데 헤매고.. 그러다보면 하루종일 붙들고 있어도 3~4페이지도 못나간다.

그렇다고 문제부터 풀면서 시작하자니 어떤걸 풀어야 할지도 모르겠고,

이것저것 건드려는 보는데, 역시나 풀어봐야 실력이 전혀 오르는거 같지 않다.

▶ 문제를 이렇게 오래잡고 있어도 될까?

▶ 모르는 STL은 한방에 묶어서 누가 해결 좀 해줬으면 성공 알고리즘 EA 좋겠다.

이런 생각을 가진 분들이라면 이 글을 읽어볼만 하다.

내가 자주 하는 말이 있는데,

모르는 사람은 본인 스스로가 무엇을 모르는지 모른다.

자기 스스로가 모르고 있다는 사실 조차 모르는 것이다.

그렇기 때문에 뭘 물어봐야 하는지도 모른다.

그래서 모르는 부분이 무엇인지부터 알아야한다.

모르는 부분은 어떻게 알 수 있을까?

사실 제일 쉬운방법은 주변에 잘하는 사람에게 도움을 청하는 것이겠지만,

이 글을 읽고 있는 사람은 아마도 주변에 잘하는 사람이 없는 상태일 것이므로

다음과 같은 문제를 풀어보면서 내가 아는 부분은 넘기고 모르는 부분을 빠르게 채워나가는 것이 좋다.

처음부터 책과 씨름하지 말자. 알고리즘 시작도 못해보고 퍼지기 딱 좋다.

BOJ에서 다음 문제들을 쭉 순서대로 풀어본다. boj.kr/문제번호

입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992

입출력 문제들을 풀 때 10분이상 이 문제를 붙들고 있는 경우, 그건 입출력에서 뭔가 모르는 부분이 반드시 있다는 뜻이므로 이전 질문들을 무조건 찾아보고 다른 사람이 푼 코드를 반드시 봐야 한다. 이 때 코드 길이 줄이려고 이상하게 짧은 코드들 많은데, 그런건 보지 말고 랭킹 100위권 안에 드는 사람들 중 인덴트 멀쩡한 코드를 보면 된다.

그 다음 DP문제를 풀어보자.

DP - 1463, 11726, 11727, 9095, 10844, 11057, 2193, 9465, 2156, 11053, 11055, 11722, 11054, 1912, 2579, 1699, 2133, 9461, 2225, 2011, 11052

백준님은 모르는 문제가 있으면 2시간을 넘기지 말라고 했는데, 나는 이런 기초 문제는 1시간을 넘길 필요가 없다고 생각한다. 흔히들 PS를 처음 접하는 사람들이 하는 큰 실수가 모르는 문제를 하루종일 붙들고 있는 건데, 우린 수학이란 과목을 정규과정만으로는 초등학교 6년, 중학교 3년, 고등학교 3년 동안 배웠다. 그런데 알고리즘에는 그만한 시간을 투자할 수 없다. 그러나 알고리즘의 양은 그만큼 방대하다. 그러니 수학문제 풀듯이 계속 붙들고 있는건 미련한 짓이다. 이건 마치 덧셈,곱셈 정도만 아는 상태에서 미적문제를 푸려는 시도와 같다고 생각한다. 앞서 말했다시피 모르는 사람은 뭘 모르는지 모르는게 문제다. 본인이 미적에 대한 개념이 있는지 조차 모르는데 그 문제를 백날 붙들고 있어봐야 풀릴까? 당연히 아니다. 일단 1시간 넘어가면 그 문제 풀 확률은 거의 없다고 봐도 된다. 그러니 바로바로 찾아봐라. 특히 이 문제들은 정말 기초 문제들이고 사람들이 많이 풀었기 때문에 네이버나 구글에 검색하면 자세한 설명과 코드가 넘쳐난다.

반드시 지키자! 1시간 넘어가면 풀던 짓을 그만두고 반드시 AC받은 코드 찾아보기 (설명이 꼭 달려있는 코드를 읽자)

한 문제 가지고 며칠씩 씨름하고 풀어봐야 다음에 풀지도 못할뿐더러 아주 비효율적인 방법으로 푸는 경우도 있을 거다.

그러는 것 보다 이 문제의 답을 빨리 확인하고 이와 유사한 문제들을 여러개 풀어제끼는 것이 아주아주 현명한 방법임을 명심하자.

그리고 푼 다음에는 반드시 다른 사람의 코드를 봐야 한다.

특히 자신만의 가상의 스승을 잡고 그 분의 코드를 보는 것도 좋은 방법이라 생각한다.

너무 갓갓들은 이상한 방식으로도 짜는 경우도 있기 때문에 적당한 사람을 선택해야 한다.

그 사람의 코드를 보면 잘 이해가 되고, BOJ랭킹은 100위 안에 드는 사람이면 적당하다.

근데 처음부터 끝까지 하나하나 세밀하게 볼 필요는 없다.

로직 대충 비슷해보이면 스킵하고, 나랑 완전 다른 방법인데 참신하면 들여다보고 하는거지 뭐.

그 다음 이런 저런 문제들을 풀어보자.

2751, 11650, 11651, 10814, 10825, 10989, 11652, 11004, 10828, 9012, 10799, 10845, 10866, 10808, 10809, 10820, 2743, 11655, 10824, 11656, 1406, 1158, 1168, 10430, 2609, 1934, 1850, 9613, 11005, 2745, 1373, 1212, 2089, 11576, 1978, 1929, 6588, 11653, 10872, 1676, 2004

여기까지 다 풀고 나면 이제 재밌는 그래프 문제(bfs, dfs)를 풀어보자.

그래프 - 1260, 11724, 1707, 10451, 2331, 9466, 2667, 4963, 7576, 2178, 2146, 1991, 11725, 1167, 1967

코포(Codeforces) div2에서도 자주 등장하는 binary search 문제도 풀어보자. (여기엔 ternary search도 있다.)

이분탐색/삼분탐색 - 1654, 2805, 2110, 10815, 10816, 11662

분할정복은 DP랑 느낌이 비슷한데, 부분 문제를 dp테이블에 저장할 필요가 없는(cache질을 할 필요가 없음) 부분이 DP랑 다른 것 같다.

분할정복 - 11728, 1780, 11729, 1992, 2447, 2448, 1517, 2261

그리디 알고리즘은 매 순간 최선을 선택한다라는 말 때문에 매우 쉽게 들리지만, 매 순간의 선택이 최선이 되도록 방법을 정하는 것 자체가 매우 어렵다.

그리디 - 11047, 2875, 10610, 1783, 1931, 11399, 2873, 1744

그 다음은 완전탐색(exhaustive search)이다.

완전탐색은 '말하는 대로' 구현하는 문제다.

그냥 무식하게 구현하면 될 것 같지만, 여기서도 고수의 코드를 보면 그들의 멋진 computational thinking 방식을 느낄 수 있다.

처음에는 이런 문제도 어렵지만 나중에는 쉬워진다.

이걸 실수없이 빠른 시간안에 잘 짜야 쉬운 문제들을 척척 풀어나갈 수 있다.

완전탐색 - 1476, 1107, 1451, 9095, 10819, 10971, 1697, 1963, 9019, 1525, 2251, 2186, 3108, 5014, 1759, 2580, 1987, 6603, 1182, 2003, 1806, 1644, 1261, 1208, 7453, 2632, 2143

여기까지 푸는게 딱 4주 분량이다. (BOJ 문제 부분만)

여기까지 푸는데 4주를 안넘기는게 좋다고 생각한다. 왜냐면, PS를 하면서 느낀건데, 단기간에 몰아서 왕창 할 수록 얻는 양은 어마어마하게 달라지는 것 같다.

보통 그리디 문제 전까지 2주를 잡고 그리디랑 완탐부분을 2주 잡으면 될거다. (그리디랑 완탐 양이 꽤 많다. 저 문제 다 풀기 정말 힘들다ㅠ)

이 정도 했으면 이제 종만북(알고리즘 문제 해결전략)을 보자.

2018.11.23 수정 - (원래 빨간책이란걸 추천했으나, 지금은 추천하지 않는다.)

추천하지 않는 이유 (Click)

원래 빨간책은 처음 시작하는 분들에게 추천을 했었는데,

빨간책이 탑코더라는 해외 OJ 사이트를 기반으로 한 책이다보니

이 부분에서 어려움을 얘기하는 사람이 있어서 그랬다.

(탑코더 플랫폼 자체가 조금 특이하다.)

탑코더 자체가 정말 좋은 사이트이고 괜찮은 책이 많지 않은건 사실이지만,

사실 괜찮은 책이 많다고 해서 다 볼것도 아니고

어차피 한 두권만 제대로 봐도 더 볼 일도 없으니

국내 OJ를 잘 이용할 수 있는 책을 보는게 낫겠다 싶어서였다.

나는 이 단계에 오기 전에 종만북 보는 것을 매우 비추한다.

물론 처음 부터 종만북보고 정말 잘하는 분들도 있지만, 종만북은 절대 초보자용이 아니다.

종만북 보면 어디어디 선택해서 보라고 나와있는데

나는 그것보다 1권 마지막 수치해석부터 읽는 것이 좋다고 생각한다. (어디까지나 개인적인 생각입니다.)

그리고 기하는 skip~!! 기하는 종만북 다 씹어먹을때 쯤 읽는 것을 추천한다.

그리고 2권에 나오는 그래프 부분이 정말 재밌다.

일단 이렇게 진도가 쭉쭉 나가야 뭘 하는 재미라도 있다.

그리고 2권 다 봤으면 1권 보면 된다.

(종만북 보면서 당연히 알고스팟 문제들 다 풀어봐야 한다.)

이거 평점이 상당히 안좋은데, 번역이 안좋아서 그렇다.

그런데도 이 책을 추천하는 이유는, 여기까지 공부한 상태라면 오타랑 어색한 표현들이 그냥 다 보이기 때문이다.

노란책의 장점은 네트워크 플로우 부분이라 생각한다.

또 전체적으로 책이 매우 얇으면서도 있을건 다있고 정말 보면 볼 수록 갓책이라는 느낌이 든다.

특히 종만북은 네트워크 플로우 부분이 너무 없고 (Dinic, MCMF도 없고..)

문자열 파트도 처음 보고 이해하기가 좀 어려웠는데

그런 부분들을 노란책이 다 메꿔주는 것 같다.

어차피 노란책을 볼 때 쯤이면, 취업 걱정 할 일이 없을거고

시작하기 전의 나 자신을 돌아보면 참 많이 발전했다는 것을 느낄 수 있을 것이다.

그럼 이제 다시 아까의 질문들을 떠올려보자.

▶ 문제를 이렇게 오래잡고 있어도 될까?

▶ 어디서부터 문제일까? ☞ 내가 모르는게 뭔지 몰라서 문제다.

▶ 모르는게 뭔지 어떻게 아냐? ☞ 문제풀면서 모르는걸 채워나간다. 책을 처음부터 보는 정공법이 아니라 기본문제를 풀면서 모르는 부분을 빠르게 채워 나가는 속성법이다. 다만, 반드시! 명심해야 할 것은 기초 입출력문제에서 10분이 넘어가면 반드시 모르는 부분이 있다는 것이다. 꼭! 잘하는 사람의 코드를 찾아보고, 속성법인 만큼 빠르게 모르는 것들을 캐치하고 정공법으로 돌아가야 한다.

▶ 어디부터 공부해야할까? ☞ 언급한 BOJ문제를 풀고 종만북을 본다. 종만북 다 보고 나면 노란책으로 입가심을 하자.

▶ 도움은 어디서 받아야 할까? ☞ 밑에 링크를 적었다. (BOJ Slack (분쟁이 있어서 사라진 것으로 앎. → dotorya님의 Discord를 이용)

▶ 문제를 이렇게 오래잡고 있어도 될까? ☞ 입출력 문제를 제외하고 다른 문제들은 1시간으로 생각하자. 시간이 지나면 답을 보고 푼다.

물론 이러한 내용들은 사실 혼자 끙끙거리는 것 보다 강의를 듣는게 백배 낫다고 생각한다.

나도 백준 강의를 통해 해결했기 때문이다.

강의를 듣게 되면 위와 같은 방식으로 문제풀이를 진행하는데,

내가 백날 입출력은 10분 넘기면 모르는거라고 떠들어대도

"에?! 뭐야 이거 입력하고 출력하는걸 뭐하러 해?"

"달력 출력은 시간낭비지 이걸 해서 얻는게 뭐지?"

라는 생각을 하고 그냥 넘기거나 대충하는 사람들이 있다.

입력받고 그냥 그대로 출력하는 문제는 30초,

날짜를 입력받고 요일을 출력하는 문제나 모두 3분 안에 코딩이 가능하다.

빠른 시간안에 코드를 짜지 못한다는건 결국 코드가 형편없다는 것을 의미한다.

빠른 시간안에 짤 수없는 방향으로 생각을 했기 때문에 코드가 빠르게 완성되지 못하는 것이다.

이걸 누군가 알려주지 않는다면 계속 우물안 개구리에 머물러 있을 확률이 높다.

이런 부분은 강의/선생님을 통해서 해결하는게 베스트이긴 하다.

당연히 내가 백준 강의 홍보대사를 맡은것도 아니고 그 분한테 광고비를 받는것도 아니다.

오프라인 강의가 비싸다면 온라인강의라도 듣는 것을 추천하지만,

온라인은 들어본적이 없으므로 판단은 본인 몫이다.

현재(2016년)는 강의마다 9만9천원에 올라와 있는데,

내가 듣는 것을 추천하는 온라인 강의는 기초,중급1,중급2 부분이다.

이게 오프라인 강의에서는 입출력부터 시작해서 네트워크 플로우 나오는 부분까지를 말한다. (아마 2달치로 구성되어 있을 것이다.)

내 생각엔 여기까지가 기초다.

왜냐하면 지식습득 부분까지는 기초라고 생각하기 때문이다.

오늘 무언가 알게되었을 때, 내일도 아는거고 모레도 아는거면,

그건 아무나 할 수 있는거니까..

아무튼 여기까지 하고나면 알고리즘이라는 거대한 숲을 보는 안목이 생기고

STL을 몰라서 헤매는 부분이 자연스럽게 해결된다.

안보이던 종만북도 쉽게 읽히고,

스스로 공부하는 데 무리가 없게 된다.

만약 강의에 거부감이 있다면,

처음에 언급했던 방법을 따르는 것을 추천한다.

그럼 다들 즐거운 PS 하시길~!

내가 자주 이용하는 사이트는 굵은색과 글씨크기로 중요도를 표시했다.

C++ Reference : http://cppreference.com (www.cplusplus.com 거기보다 십만배 좋다고 생각하는 C++ reference 사이트다. 디자인도 좋고 훨씬 깔끔하고 훨씬 보기가 좋다.)

(정올 문제를 BOJ에서 풀다가 WA를 받은 경우 정올 가서 서밋해보면 틀린 테케를 확인할 수 있다. 다만, 문제 이름은 서로 다를 수 있으므로 출처를 통해 알아서 잘 찾아야 한다. ㅋ 테케는 BOJ가 다른 OJ보다 훨씬 센 편이다. 다른 곳에서 돌아가는 코드가 BOJ에서 안돌아가는 경우를 심심찮게 확인할 수 있는데, 보통 공식 테케가 허접한 경우일 때가 많다.)

더블릿: 단계별 학습으로 유명한데, 유료다. 알고스팟과 BOJ가 있는 마당에 돈을 내면서까지 이용해야 하는지는 잘 모르겠다.

koi4study: http://koistudy.net (유용한 자료가 많다. 특히 여기서 소개하는 hustoj가 있는데, 초딩도 쉽게 만들 수 있을만큼 설명이 되어있다. 나만의 OJ를 원한다면 첫 OJ로 경험하기엔 아주 딱인것 같다. 그리고 여기서 소개되는 두 선생님의 사이트가 있는데, 가보면 어린 친구들이 많은걸 볼 수 있다. 직접 이용을 하진 않아서 그 저지가 어떤지는 잘 모르겠다.)

BOJ Slack : https://www.acmicpc.net/board/view/2788 (여기서 슬렉 초대메일을 받을 수 있다. 초대 메일이 안보인다면 Junk Mail에 들어가 있을 수도 있으므로 잘 찾아볼 것. 갓들의 피드백을 바로바로 받을 수 있다. 여기가 아니었다면 내가 PS를 1년가까이 지속해서 할 수 있었을까?? 나를 지탱해준 힘은 여기인듯 하다.) BOJ Slack은 폭파되었다고 한다. 대체 커뮤니티로는 dotorya님이 운영하는 디스코드가 있다. BOJ 랭킹을 검색해보면 디스코드 적혀있을 것이다.

코드포스 : htt p://codeforces.com (국내에서 가장 많이 이용하는 외국 사이트가 아닐까?)

탑코더 공식 홈페이지에 들어가보면 뭔가 그럴싸하게 보이지만, 만들다 만거라고 보면 된다. ps분야 말고도 이거저거 하는게 많은데, 다른 분야는 모르겠고 ps arena에 들어가보면 beta버전이라고 되어있는데 내가 알기로 여기선 뭔가 contest를 진행할 수가 없다. 다들 위의 경로에서 다운받은 옛날 스타크래프 배틀넷 같이 생긴 어플을 통해 콘테스트를 치룬다. 와 정말 점점 느끼는 거지만 BOJ만큼 현대적인 인터페이스를 제공하는 온라인 저지가 없다. 코포도 보면 가관일때가 있다.(하다보면 앎) 아무튼 탑코더는 해보면 아는데, 희한하게 문제에서 제시한 조건에 맞는 클래스를 생성해서 제출해야 하며 스타 배장같이 생긴 arena에서 코딩 맞짱을 뜨는 느낌이 성공 알고리즘 EA 든다.

알고리즘 문제해결

post-thumbnail

https://www.acmicpc.net/problem/133051️⃣ 가는 길은 하나밖에 없음으로 가는 길 마다 기름이 싼 도시에서 더 기름이 싼 도시까지 가지 위해 기름을 충전하는 것이 가장 싼 가격에 목적지까지 갈 수 있는 방법이다.

18 . [백준] 11000 강의실 배정

https://www.acmicpc.net/problem/22121️⃣ 기지국을 어디든 놓게 되어도 수신 가능 영역은 센서간의 가장 가까운 거리들의 합으로 구해지게 된다.2️⃣ K개의 구역으로 나눠 기지국을 설치하는데 이때, 그룹간 거리는 고려하지 않는 점을

19 . [BOJ]13094 과제

post-thumbnail

https://www.acmicpc.net/problem/139041️⃣ 과제 점수가 높은 과제부터 고려를 시작2️⃣ 최대한 늦게 늦게 끝낼 수 있는 과제를 최대한 늦은 날짜에 끝내도록 한다. (날짜마다 수행한 과제는 scores배열에 저장)

20 . [백준]8980 택배

post-thumbnail

https://www.acmicpc.net/problem/89801️⃣ 받는 마을 순으로 오름차순(1번 마을부터 가까운 마을부터 박스를 옮겨나름)2️⃣ 보내는 마을과 받는 마을을 고려하여 현재 마을에서 얼마만큼의 박스를 담고 있는지 정보를 갱신하며 담을 수 있

21 . [BOJ]11000_강의실배정

post-thumbnail

https://www.acmicpc.net/problem/110001️⃣ 강의 시작시간을 오름차순으로 정렬 후 시작 시간이 빠른 순서대로 끝나는 시간을 heapq에 넣어준다.2️⃣ 다음 강의를 고려 시 현재 진행되고 있는 강의의 끝나는 시간들 중 가장 작은 수

22 . [BOJ]1092 배

post-thumbnail

https://www.acmicpc.net/problem/10921️⃣ 매 시간마다 가장 무거운 박스를 들 수 있는 크레인 순으로 가장 무거운 박스부터 나른다.2️⃣ 나른 박스는 리스트에 제거하며 시간 절약을 위해 크레인 배열과 박스 배열을 내림차순 정렬후 리

23 . [프로그래머스] 괄호 회전하기

post-thumbnail

https://programmers.co.kr/learn/courses/30/lessons/765021️⃣ 문자열을 deque에 넣은 다음 한 회차씩 수행할 때 마다 문자열을 뒤로 미룸2️⃣ 올바른 문자열인지 파악할 때 스택 구조를 이용하고 현재 들어가는 문자

4. Scheduling

퍼징에서 scheduling 은 다음 fuzz iteration을 위해 fuzz configuration을 선택하는 것 을 의미한다. 전술했듯이, 각 configuration의 내용은 퍼저의 유형에 따라 다르다.

간단한 퍼저의 경우 스케줄링이 단순하다. 예를 들어, zzuf의 기본 모드는 하나의 configuration만 허용한다. BFF나 AFLFast과 같이 더 복잡한(:advanced) 퍼저의 경우, 기발한 스케줄링 알고리즘이 해당 퍼저의 성공과 직결되는 아주 중요한 요소로 작용했다.

이 섹션에서 블랙 박스 퍼징과 그레이 박스 퍼징의 스케줄링 알고리즘만을 다룬다. 화이트 박스 퍼징의 스케줄링은 symbolic executor에 복잡한 설정이 필요해서 생략한다. 궁금한 독자는 다음 연구를 참고하라: .

4.1 The Fuzz Configuration Scheduling (FCS) Problem

스케줄링 의 목표는 configuration에 대해 현재 사용 가능한 정보를 분석하고 가장 유리한 결과 (예: unique한 성공 알고리즘 EA 버그의 수가 많아지거나, 생성된 입력 set을 통해 커버리지 최대화하기 등)로 이어질 가능성이 있는 정보를 선택하는 것이다.

기본적으로 모든 스케줄링 알고리즘은 탐색 (:exploration)과 익스플로잇 (exploitation)의 trade off 문제에 직면하게 된다.

향후 결정을 위해 각 configuration에 대한 더 정확한 정보 수집에 시간을 할애하는 것이 합리적이다.

현재 가장 유리한 결과물로 이어질 것 같은 configuration을 퍼징하는 것이 합리적이다.

Woo의 연구 에서 이러한 고질적인 문제를 Fuzz Configuration Scheduling (FCS) Problem 라고 정의했다.

SCHEDULE은 오직 의사결정 (:decision-making)에 관한 동작일 뿐이다. 이 결정의 기반이 되는 정보는 PREPROCESS와 CONFUPDATE에서 획득되며, 이 지식으로 C \mathbb C  가 업데이트(:augment)된다.

4.2 Black-box FCS Algorithms

블랙 박스 환경에서 FCS 알고리즘이 사용할 수 있는 정보는 fuzz configuration의 결과(크래시와 버그의 수, 소요 시간) 뿐이다.

얼마 지나지 않아 Woo의 연구 에서 이 아이디어를 여러 측면에서 개선하였다.

  1. 일련의 Bernoulli trial에서 Weighted Coupon Collector’s Problem with Unknown Weights (WCCP/UW)라는 문제로 변이 기반 블랙 박스 퍼징의 수학적인 모델을 개선했다. 전자(Bernoulli trials)는 각 configuration이 고정적인 최종 성공 확률을 가지고 있다고 가정하고 시간이 지남에 따라 학습한다. 후자(WCCP/UW)는 upper-bound를 명시적으로 유지한다(as it decays).
  1. WCCP/UW 모델이 multi-armed bandit(MAB) 문제에 대한 알고리즘을 investigate하도록 유도했으며, 이는 decision science에서 exploration vs exploitation 문제에 대처하기 위한 전형적인 방식(:formalism)이다. 이를 위해 아직 decayed된 것으로 알려지지 않은 configuration을 정확하게 exploit하는 MAB 알고리즘을 구상할 수 있었다.
  1. 그들은 퍼징을 더 빠르게 할 수 있는 configuration이 더 많은 unique bug를 발견하거나 향후 성공 확률에 대한 upperbound를 더 빠르게 감소시킬 수 있다고 보았다. 이를 통해 configuration에 사용한 시간으로 성공 확률을 정규화하여, 더 빠른 configuration이 유리하도록 했다.
  1. BFF에서 fuzz iterations(BFF에서 epoch에 해당) per configuration selection이었던 기존의 fuzz run의 orchestration을 fixed amount of time per selection으로 변경했다. 덕분에 BFF는 느린 configuration에 시간 낭비하지 않을 수 있게 되었다.

결과적으로 기존 BFF와 비교했을 때 동일한 시간 동안 unique 버그를 1.5배 더 많이 발견할 수 있다는 것을 보여주었다.

4.3 Grey-box FCS Algorithms

그레이 박스 환경에서, FCS 알고리즘은 더 많은 정보들(예: 커버리지 획득 정보 등)을 사용해 configuration을 성공 알고리즘 EA 선택할 수 있다.

AFL은 이 분야의 선두주자인데, evolutionary algorithm(EA)을 사용한다. 간단히 말하면, EA는 fitness 의 가치가 있는 configuration set을 유지한다. EA는 fit한 (이하 더 효과적인 으로 해석) configuration을 선택하고 나중에 새로운 configuration이 될 수 있는 자식을 생성하기 위해 mutation이나 재조합과 같은 유전적 변형(:genetic transformation)을 적용한다. 이는 이렇게 만들어진 configuration이 효과적일 가능성이 높을 것이라는 가정을 기반으로 한다.

EA의 관점에서 FCS를 이해하려면 다음 세 가지를 잘 정의해야 한다.

(i) configuration을 효과적으로 만드는 요소

(ii) configuration 선택 방법

(iii) 선택된 configuration가 사용되는 방법

AFL에서는 control-flow edge를 실행하는 configuration 중, 가장 빠르고 가장 작은 configuration 입력을 포함하는 configuration을 가장 효과적(AFL에서는 favorite라는 용어를 사용)이라고 판단한다. AFL은 config 큐를 원형 큐(circular queue) 형태로 유지하면서 다음으로 효과적인 configuration을 선택하고, 일정한 횟수만큼 실행한다.

빠른 configuration이 효과적이라고 판단하는 것은 블랙 박스 환경의 FCS와 유사하다.

최근에 AFLFast는 위 세 가지 측면에서 AFL을 개선했다.

1. AFLFast는 입력이 "favorite"이 되도록 두 가지 기준을 추가했다.

(i) control flow edge를 실행하는 configuration 중에서 AFLFast는 가장 적게 선택되는 configuration을 선호한다. 이는 edge를 실행하는 configuration들 사이에서 cycling하는 효과가 있었고, 덕분에 exploration 관점에서 유리하다.

(ii) (i)이 동일한 경우 가장 적게 실행된 경로를 탐색할 수 있는 configuration을 더 선호한다. 이는 아직 커버하지 못한 영역을 탐색할 수 있게 해주는 희귀한 경로를 더 많이 찾게 해주는 효과가 있다.

2. AFLFast round-robin 방식 대신 우선순위에 따라 효과적인 다음 configuration을 선택하는 방식을 사용한다.

특히 효과적인 configuration은 덜 선택되거나 더 희귀한 경로를 탐색할 수 있는 경우 우선순위가 높다. 첫 번째 개선사항(위에서 추가한 두 가지 기준)과 유사하게, 효과적인 configuration들 간의 탐색을 늘리고 희귀한 경로를 많이 탐색할 수 있는 효과가 있다.

3. AFLFast는 power schedule을 기반으로 선택된 configuration을 다양한 횟수만큼 퍼징한다.

AFLFast의 FAST power schedule은 "energy"라는 작은 값에서 성공 알고리즘 EA 시작하는데, 이는 configuration들 간의 초기 탐색을 보장하고 충분한 탐색을 위해 limit까지 지수 단위로 증가한다. 또한 동일한 경로를 탐색하는 입력의 수를 energy를 기반으로 정규화하여 더 적게 퍼징되는 configuration을 탐색할 수 있도록 한다.

AFLFast의 이러한 변화들은 효과적이었다. 24시간 동안 퍼징한 결과, AFL이 발견하지 못한 버그를 3개 더 발견했으며, 두 퍼저 모두 발견한 6개의 버그는 평균 7배 더 빠르게 발견했다.

AFLGo는 특정 프로그램의 위치를 타겟으로 우선순위 속성(:attribution)을 수정하여 AFLFast를 확장했다. Hawkeye는 시드 스케줄링과 입력 생성 단계에서 정적 분석을 활용하여 directed fuzzing을 개선했다. FairFuzz는 시드와 rare branch의 각 쌍에 대해 mutation mask를 적용하여 campaign이 rare branch를 실행하도록 했다. QTEP은 정적 분석을 통해 바이너리의 어떤 부분이 더 " 결함 (:faulty)"인지 추론하고, 이를 포함하는 configuration에서 우선순위를 부여하는 방식을 사용한다.

FX 자동매매 프로그램(EA)과 카피 트레이딩 기본지식

FX-자동매매프로그램-EA

최근에는 국내 증권가에서도 인공지능(AI) 을 활용한 알고리즘 트레이딩이나 로보어드바이저 관련 키워드가 각광을 받고있다.

그러나, 외환거래를 하는 개미 트레이더들의 주 무대인 소매 FX마진거래 업계에서는 여전히 EA (Expert Advisor) 라 불리는 자동매매 프로그램이 높은 인기를 누리고 있다.

막대한 자금과 고급인력이 필요한 인공지능(AI) 매매 시스템과는 달리, 개인 수준으로도 개발이 가능하고 수많은 트레이더들이 수익률과 참고 정보를 공개하고 있는 덕분에 일반인들의 진입 장벽이 낮아졌기 때문이다.

게다가 최근에는 미러트레이딩, 소셜트레이딩 같은 유형의 선택형 자동매매가 국내에도 보급되기 시작하면서 MT4를 모르는 외환 초심자들도 쉽게 접할 기회가 늘어나고 있다.

오늘은, 이러한 FX마진거래 자동매매 플랫폼들의 장단점과 ‘MT4’를 활용한 자동매매 프로그램 (EA) 에 대해서도 정리해보려 한다.

자동매매 거래의 기본 개념

자동매매를 ‘시스템 매매’라고 부르기도 하는데, 엄밀히 말하자면 시스템 매매는 자동매매의 상위 개념이다.

수동 거래일지라도, 정해진 룰이나 원칙에 따라서 기계적으로 매매를 한다면, 그 매매는 시스템 매매라고 할 수 있는데, 인간인 이상 모든 감정을 배제하고 거래할 수는 없는 법이므로, 수 많은 트레이더나 딜러들이 결국에는 컴퓨터를 활용한 자동매매 시스템의 힘을 빌리게 되는 것이다.

MT4-EA-시스템로직

초심자들을 위해, 우선은 자동매매 프로그램 (EA) 의 작동원리부터 살펴봐야 할 것 같은데, 그전에 ‘MT4’에 대해 짚고 넘어가자.

‘MT4’와 EA의 작동원리

국내에는 아직 보급이 제대로 되지 않았지만, 해외에서는 대부분의 개인 트레이더들이 FX마진거래를 할 때 MT4 (메타트레이더 4) 라는 소프트를 사용한다. ‘그래픽 디자인’하면 ‘포토샵’을 떠올리는 것처럼, 해외 브로커를 사용하는 외환 트레이더라면 반드시 접하게 되는 소프트다.

MT4-차트-로고

컴퓨터 또는 스마트폰에 한번 설치하면, 브로커 (선물-증권사) 계정이 바뀌어도 로그인 정보만 달리 입력하면 되고, 언어 선택은 물론 각종 커스터마이징이 자유롭게 가능하다는 점이 최대 장점이다.

자동매매 프로그램 (EA) 은 ‘ex’라는 확장자를 가진 파일 형태로 공급되는데, 이 파일을 MT4가 설치된 폴더 내부에 옮겨 넣고 간단한 설정을 성공 알고리즘 EA 해주면 작동하는 구조다.

예를 들어 아래 그림처럼, 컴퓨터 안에 서로 다른 브로커의 MT4가 2개 깔려있다면 각각의 MT4에 여러가지 기법의 자동매매 프로그램 (EA) 을 설치할 수 있는 것이다.

MT4-EA-자동매매-구조

참고로 이 파일은, ‘MQL’이라는 프로그램 언어로 만들어지는데, ‘MQL4’로 만들어진 EA는 MT5에서는 작동하지 않는다.

그전에는 FX Chart (MT1), MetaQuotes (MT2) 가 출시되며 시행착오가 이어졌으나 2005년에 MT4가 출시되면서 압도적인 시장 점유율을 차지하게 되었고, 2011년 MT5가 공개된 이후에도 여전히 가장 높은 사용률을 보이고 있다.

MT5는 자동매매 프로그램 (EA)과의 호환성이 안 좋은 이유로 아직도 보급이 덜 되었으나, 차츰 나아지고 있긴 하다.

MT4 자동매매 프로그램 (EA) 의 장단점과 업계 현황

EA 프로그램을 활용한 자동매매는 MT4의 태동과 함께, 해외에서는 이미 10여 년 전부터 개인 트레이더 사이에서 보급되기 시작했다. 이제 이 둘은 마치 바퀴와 바퀴살 같은 관계가 되어버렸는데, 전 세계 MT4 사용자가 4천만 명을 넘는다고 하니, EA 사용자도 아마 수십만 명은 가뿐히 넘을 것으로 추정된다.

참고로 MQL 공식 사이트 가입자 수는 20만 명 수준으로, 이 사이트에서는 외환 시장 참여자들의 정보교환은 물론, 방대한 양의 각종 오리지널 인디케이터 (보조지표) 와 자동매매 프로그램 (EA) 등을 판매하고 있다.

하지만, 자동매매 프로그램 (EA)의 경우에는 그 가격대와 수익률이 천차만별이고 개중에는 사기성 업체 (또는 개인) 가 공급하는 경우도 있는 탓에, 초심자들이 가성비 좋은 EA를 선별해 내기란 결코 쉬운 일이 아니다.

MT4-자동매매-가상서버

게다가 EA를 완벽하게 구동시키려면, MT4가 잠시도 정지하지 않는 환경하에 있어야 하는데, 그러려면 VPS (Virtual Private Server) 등의 가상서버를 따로 계약(준비) 해야 하는 번거로움이 있다.

물론 XM 등 몇몇 브로커들은 무료로 이러한 부가 서비스를 제공하기도 하지만, 컴퓨터 초심자에게는 어느 정도 장벽이 있는 것도 사실이다. (전문용어가 낯설어서 그렇지, 실제로 시도해 보면 전혀 어렵지는 않지만)

MT4 자동매매 프로그램의 장점

MT4-자동매매프로그램-EA-장점

소유권자의 의향에 따라 다르긴 하지만, 의 ‘개꼬리 EA’처럼 매매 로직을 공개하는 프로그램이라면, 일관성 있게 믿고 따라갈 수 있다는 장점이 있다. (손실이 발생해도 매매 로직을 알고 있으면 성공 알고리즘 EA 그 원인을 이해할 수 있기 때문에)

설정을 상세하게 미세 조정할 수 있기에, 변동폭이 좁을 때는 수익핍 수치를 낮추는 등, 상황에 따라 융통적으로 조처할 수 있다는 강점이 있다.

그리고 가장 큰 장점은, ‘구입 가격’ 외에는 비용이 들어가지 않는다는 점이다. 물론 EA사용료 개념의 수수료도 발생하지 않는다. (완전 무료로 제공되는 EA는 조심하라)

게다가, XM이나 틱밀 같은 우량 브로커에서는 ‘가상 서버’도 조건부 무료로 제공한다.

또한, 대량 생산되는 미러 트레이드의 EA와는 달리, 기획자와 프로그래머가 심혈을 기울여서 개발하는 경우가 많으므로, 때에 따라서는 매우 고품질의 EA와 조우하는 일도 간간히 발생한다는 매력이 있다.

카피 트레이딩, 미러 트레이딩, 소셜트레이딩의 차이점

한편, 기존 MT4 자동매매 프로그램 (EA) 의 단점 속에서, 신개념 FX마진 자동매매 서비스로 자리매김한 것이 바로 ‘미러 트레이더’와 ‘줄루 트레이드’ 등의 플랫폼이다.

‘미러 트레이더’ (Mirror Trader) 는, 2005년 이스라엘의 IT 벤처 기업 트레덴시(Tradency) 사가 개발한 ‘선택형 FX 자동매매’ 플랫폼으로, 세계 각국 (약 20개국) 의 브로커 (선물-증권사) 들이 트레덴시 사로부터 이것을 구매해서 약간 손을 본 후 자신들의 고객에게 무료로 제공하는 구조다.

‘미러 트레이더’ 안에는, 스트라테지 (Strategy) 라 불리는 1,000종류 이상의 자동매매 프로그램 (EA)이 사전에 탑재되어 있고 수익률 등의 가성비 분석 데이터도 손쉽게 확인할 수 있는 덕분에, 일본에서는 많은 브로커들이 이러한 서비스를 도입하고 있다. (차별화 전략의 일환으로)

미러트레이드-미러트레이딩-구조-개념

즉, MT4가 아닌, 브로커 측이 독자적으로 제공하는 대부분의 FX 자동매매가 ‘미러 트레이더’라는 기업용 소프트를 사용하고 있기에, 이제는 ‘미러 트레이딩’이 ‘선택형 FX 자동매매’의 대명사가 되어버린 것이다.

카피 트레이딩과 소셜트레이딩은 동의어

그렇다면, 카피 트레이딩이란 무언인가?

말 그대로, 거래 실적이 우수한 타인의 매매기법을 그대로 복사해서 나의 거래를 자동화하는 개념이다. 타인의 매매기법은 수동거래일 수도 있고 자동거래 (EA) 일 수도 있지만, 그의 계정과 나의 계정을 완전히 연동시키는 개념이기 때문에 ‘카피 트레이딩’이라 부른다.

소셜트레이딩-카피트레이딩

만약 EA 자동매매에 불안감을 느낀다면 수동거래 계정만 골라서 연동시킬 수도 있다는 점이 큰 장점이다.

예를 들어, 글로벌 투자은행의 초일류 펀드매니저가 자신의 매매기법을 카피 트레이딩 플랫폼상에서 공개하고 있다면 누구나 그와 같은 실적을 올릴 수 있게 되는 것이다. (수익금의 30% 정도는 성공보수로 지급해야 하는 경우가 대부분이지만)

카피 트레이딩 플랫폼 중에 가장 유명한 곳이 바로, 2010년 그리스의 핀테크 기업이 런칭한 줄루 트레이드 (zulutrade) 다.

줄루트레이드-카피트레이딩-zulutrade

그 후에도, Myfxbook (Autotrade), e-Toro, Ayondo 같은 FX 카피 트레이딩 서비스가 웹상에서 인기를 끌고 있는데, 최근에는 이런 시스템도 브로커 측이 독자적으로 구축하는 경향이 있는 탓에, 카피 트레이딩 (소셜 트레이딩) 전문 웹사이트의 집객력은 한계를 보이고 있는 듯하다.

참고로, FX마진거래 업계에서는 위와 같은 ‘카피 트레이딩’과 ‘소셜 트레이딩’이 같은 의미로 쓰이곤 하는데, 증권 업계에서도 미러링 어카운트, 소셜거래 등의 이름으로 카피 트레이딩 서비스가 제공되고 있다고 한다. (당연히 주식거래와 자동매매의 궁합이 좋을 리는 없겠지만)

정리하자면, ‘미러 트레이딩’은 브로커 측의 플랫폼을 사용한 EA 자동매매를 뜻하고, 카피 트레이딩이나 소셜 트레이딩은, 타인의 계좌 (수동이든 EA든) 와 자기 계좌의 매매가 일치하도록 동기화 시키는 거래방식을 뜻한다.

MAM거래, PAMM거래란?

MAM거래-PAMM거래-뜻

앞서 말했듯, 최근에는 브로커들이 독자적으로 카피트레이딩 시스템(플랫폼) 을 구축하는 경향이 있는데, 여기서 또 한 번 용어가 바뀐다.

소셜트레이딩-단점-수수료

대부분의 해외 브로커에서 ‘MAM (Multi Account Manager) 거래’ 또는 ‘PAMM (Percentage Allocation Master Module) 거래’ 라는 이름으로 서비스를 제공하고 있는 것이다.

소셜 트레이딩과 마찬가지로, 자신이 선택한 트레이더의 매매를 그대로 똑같이 따라할 수 있는 거래 방식으로, 앞으로는 이쪽이 대세로 떠오를지도 모른다.

각 자동매매 플랫폼의 장단점

‘미러 트레이더’에 표준 설치된 수백 종류의 EA와, 브로커 측이 추가로 제공하는 EA 등을 면밀하게 관찰하고 분석해서 자기 나름의 포트폴리오를 구성한다면 누구나 훌륭한 자동매매 거래 환경을 갖출 수 있다.

게다가 미러 트레이딩이나 소셜 트레이딩은, 따로 소프트 설치를 안 해도 손쉽게 사용 가능하기에 초심자들이 접근하기 쉽다는 장점도 있다.

미러 트레이딩의 단점

그러나 사이트상에 표시되는 EA들의 손익 실적을 보면 하나같이 엄청난 수익률만을 내세우므로 장기적으로는 신뢰할 수 없는 경우가 대부분이다.

브로커 왈… 나름의 기준으로 쓸만한 EA만을 엄선해서 소개한다고는 하는데, 문제는 가동 기간이 길어야 몇 달 수준으로, 이 정도의 기간으로는 자동매매 프로그램의 수익성을 제대로 검증할 수 없다는 데 있다.

그렇다 보니, 단기적으로 수익률이 높은 EA들만 상위 스트라테지 (수익 전략)로 소개되고, 한 번이라도 큰 손실을 본 EA는 랭킹 페이지에서 즉시 사라지게 된다.

즉, 수익률이 높은 EA만 실시간으로 소개되는 것도 어찌 보면 당연한 구조인데, 이러한 EA들은 대부분 승률은 높고 ‘수익손실비'(리스크리워드)가 낮은 ‘소탐대실’형이 대부분이다.

카피트레이딩-단점-소셜트레이딩-주의사항

또한, 매매 로직이 공개되지 않는 블랙박스형 EA인 탓에, 연패가 몇 번 이어지면 아무리 좋아 보였던 EA라도 곧바로 미심쩍은 기분에 휩싸이게 된다.

게다가, 미러 트레이딩이 가능한 브로커 계좌의 대부분이 ECN 계정과는 비교도 안 될 정도의 높은 스프레드를 책정하고 있는 점도 걸림돌이다. 사용료가 무료라 해도 이미 스프레드에 녹아있는 셈인데, 단기매매에는 이 ‘스프레드 차이’가 무시할 수 없는 요소이므로 충분한 주의가 필요하다.

소셜 트레이딩의 단점

대부분은 미러 트레이딩의 단점과 겹치는 부분이 많은데, 그중에서도 수수료가 비교적 비싸다는 점과 ‘진짜 고수’를 찾기 힘들다는 성공 알고리즘 EA 점이 치명적이다.

수수료 과금 방식은 월정액 이용료, 거래당 수수료, 성공 보수 등 여러 가지 형태가 있지만, 거래 수수료의 경우 매 거래시 10달러, 성공 보수의 경우는 수익의 30% 정도를 지불해야 하므로 결코 저렴하다고 볼 수 없는 수준이다.

단, 주변에 장기적으로 신뢰할 만한 우량 트레이더가 있다면, 이 정도의 비용을 치르더라도 그와 수익을 공유하는 것이 현명한 방법일 수 있다.

MT4 자동매매 프로그램 (EA) 선별법

MT4-자동매매프로그램-EA-수익률-확인방법

진짜와 가짜와 섞여 흙탕물 튀겨가며 난립하는 국내 MT4 자동매매 프로그램 업계.

최근에는 여기에 사짜 인공지능 매매까지 가세하면서 초보 투자자들을 더더욱 혼란시키고 있는데… 외환 트레이딩에 관심이 있어 이 글을 읽고 있는 당신이라면, 최소한 MT4 자동매매 프로그램 (EA) 의 선별법 정도는 알고 넘어가길 바란다.

당연히 가장 좋은 선별법은 실계좌로 돌려보고 검증하는 방법 (포워드 테스트) 인데, 시간적 제약이 있기 때문에, 대부분의 사람들은 백테스트의 결과로 해당 자동매매 프로그램 (EA) 의 가성비 (퍼포먼스) 를 확인하곤 한다.

물론, 백테스트의 결과가 미래의 수익성을 보장하지는 않는다.

하지만 포워드 테스트의 결과라고 해도, 인터넷상에 공개되는 데이터는 길어야 1-2년 정도인 탓에, 이것만 믿고 거래할 수도 없는 노릇이다.

개인적으로는 10년간의 백테스트의 결과와 5년 정도의 실가동 실적 (포워드 테스트) 이 있다면, 안심할 수 있는 수준이라고 생각하는데, 이 두 가지 조건에 일치하는 자동매매 프로그램 (EA) 를 찾기란 하늘의 별 따기다.

이것만은 확인하자!

그래도 MT4 백테스트에서 아래 3가지 항목을 확실하게 클리어한 EA라면 가동해볼 가치는 충분히 있을 것이다.

최소 1,000번 이상의 매매횟수를 기록한 EA로 5년 이상의 거래 기간을 보유하고 있어야 한다.

엄정한 기준선은 없으나, 리먼 쇼크, 아베노믹스 같은 일방적인 시세상황에서도 살아남았는지를 확인하려면 최소 이 정도의 거래기간과 매매횟수는 필요하다고 여겨진다.

업계 내에서는 MDD (Max Draw Down) 라고 불리는데, 최대 손실 폭을 나타내는 수치다. 즉, 최악의 경우 발생할 수 있는 ‘누적손실’의 퍼센티지를 나타내는 말로, 이 수치가 낮으면 낮을수록 안전한 EA라고 보면 된다.

일반적으로 20% 이내라면 우수한 수치로 치부되는 경향이 있다.

단, 배팅규모 (거래랏) 를 줄이거나, 입금액을 늘리면 MDD 수치 또한 낮출 수 있기에, EA에 거금을 투자할 생각이라면 이러한 변수들도 확인하고 넘어가도록 하자.

거래 기간당 수익률이 얼마인지 확인하려면 초기 입금액과 누적 수익금만 확인하면 된다.

누구나 처음에 눈이 가는 곳이지만, 배팅규모 (거래랏) 를 늘리면 수익금과 수익률 뿐만 아니라 최대손실 비율도 같이 높아지게 된다는 사실을 명심하자.

우리나라의 FX마진 자동거래 업계는 이제야 태동기를 맞이하고 있는 수준이다. 여전히 악덕 업체들도 많고, 개중에는 ‘수익률 수 천%’ 라는 과대 광고로 선량한 시민들을 현혹하는 수법이 횡행하고 있다.

물론 파생상품에는 레버리지의 힘이 있는 만큼, 운만 조금 따라주면 월 수백 %의 수익률도 불가능한 수치는 아니다. 그러나, ‘수익률은 리스크에 비례한다’는 불변의 진리를 잊지 말고 안전 운행을 우선하자. 한 순간에 골로 가고 싶지 않다면

자동매매 수익창출의 진리

자동매매-투자기법-소액재테크-주의사항

수백 %의 수익률로 몇 달 동안 잘 굴러가던 자동매매 (EA) 프로그램도 한순간의 시세 변화에 무능력해지는 경우가 허다하다. 그래서 처음에는 수익 분배를 잘해주던 자산 운영사들도 결국에는 먹튀 사기를 저지르게 되는 것이다.

월 수백 %의 수익률을 몇 년 동안 유지할 수 있는 펀드나 개인이 있다면 청와대가 가만 놔둘 리 있겠는가?

상식적으로 생각해보면 누구나 알 수 있는 일인데, 순간의 탐욕에 못 이겨 고수익률 미끼에 당하고 마는 개인 투자자들이 너무나도 많은 현실이다.

마진거래에서 말하는 적절한 수익률 (연간 30~100%) 만 따라가도, 은행 이자나 부동산 투자하고는 비교할 수 없을 정도로 높은 수익을 올릴 수 있으니, 과한 욕심으로 불행을 자처하는 일은 없길 바란다.

모든 투자기법이 그렇지만, 자동매매 프로그램 역시 양날의 검이다.

매매 로직과 손익 실적을 투명하게 공개하는 EA나 트레이더를 찾아 일관성 있게 따라간다면, 해외 브로커의 MT4 성공 알고리즘 EA 또는 앞서 말한 카피트레이딩 전략으로 충분한 수익을 올릴 수 있을 것이다.

틱밀-배너

제로마켓배너

올림프트레이드-계좌개설

당 사이트를 통해 계좌 개설시, 한정 보너스 또는 추가 캐시백, 무료리딩 등의 혜택 제공!
추천가 리딩 샘플
당 사이트에서 수취하는 광고료의 일부가 고객 계정으로 환원되는 구조이므로, 공식 사이트에서 개설할 때보다 압도적으로 이득.


0 개 댓글

답장을 남겨주세요