์ค๋ช
๐ TradeCopierBot โ ๋น ๋ฅด๊ณ ๊น๋ํ๋ฉฐ ๋ธ๋ก์ปค์ ์์ ํ ๊ฑฐ๋ ๋ณต์ฌ๊ธฐ (๋ก์ปฌ/VPS) ๐โจ
๊ฑฐ๋๋ฅผ MASTER ๊ณ์ ์์ ํ๋ ์ด์์ SLAVE ๊ณ์ ์ผ๋ก ๋ณต์ฌํ๋ ๊ฒฝ๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ณต์ฌ๊ธฐ์
๋๋ค. ์ค์ ๊ฑฐ๋ ์กฐ๊ฑด์ ๋ง๊ฒ ์ค๊ณ๋์์ต๋๋ค: ๋ค๋ฅธ ๋ธ๋ก์ปค, ๋ค๋ฅธ ์ฌ๋ณผ ์ด๋ฆ, ๋ค๋ฅธ ๋กํธ ๊ท์น.
๋ค์ค ๊ณ์ ์คํ์ ์๋ฒฝํ๋ฉฐ, ์ํ ๊ท๋ชจ ์กฐ์ , ๊ทธ๋ฆฌ๊ณ ์ ๋ต ๋ถ๋ฐฐ์ ์ ํฉํ๋ฉฐ, ์์ธํ ๋๋ฒ๊ทธ ๋ก๊ทธ๋ฅผ ํตํด ํญ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ์ ์์ต๋๋ค. ๐ง ๐
โ ๋ก์ปฌ / VPS ์ค์ ์ ์ต์ ํ๋จ (๊ฐ์ ๊ธฐ๊ธฐ).
โ cTrader Cloud ์ฉ์ผ๋ก ์ค๊ณ๋์ง ์์ (์ธ์คํด์ค๊ฐ ๊ฒฉ๋ฆฌ๋์ด ์ ํธ๋ฅผ ๊ณต์ ํ ์ ์์). โ๏ธ๐ซ
์ฃผ์: ์๋ก ๋ค๋ฅธ cTrader ๊ณ์ ์ด ๋ ๊ฐ ์๋ค๋ฉด, cBot๋ ๋ ๊ฐ ๊ตฌ๋งคํด์ผ ํฉ๋๋ค; ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ณต์ฌํ ์ ์์ต๋๋ค. ๋ฌธ์ ์ฌํญ์ด ์์ผ๋ฉด ์ธ์ ๋ ์ง ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
๐ง ์๋ ๋ฐฉ์ (MASTER โ SLAVE) ๐งฉ
๐ 1) ์ ํธ ์ ์ก (๊ฑฐ๋๊ฐ โ์ด๋โํ๋ ๋ฐฉ์)
์ด ๋ณต์ฌ๊ธฐ๋ cTrader LocalStorage (๊ธฐ๊ธฐ ๋ฒ์)๋ฅผ ๊ณต์ โ๋ฉ์์ง ๋ฒ์คโ๋ก ์ฌ์ฉํฉ๋๋ค.
โ MASTER
- ํฌ์ง์ ์ด๋ฒคํธ ์์ : ์ด๋ฆผ / ์์ / ๋ซํ
- ๋ค์๊ณผ ๊ฐ์
TradeSignal์์ฑ (OPEN / MODIFY / CLOSE) - ์ด๋ฅผ signals list์ ์ถ๊ฐํจ (LocalStorageScope.Device ๋ด)
- SLAVE๊ฐ ์ฆ์ ์ฝ์ ์ ์๋๋ก Flush() ํธ์ถ
โ SLAVE
- ๋งค Poll Interval ์ด๋ง๋ค Timer ์คํ
- Reload() ํธ์ถ
- signals list ์ฝ๊ธฐ
- ์ค์ง ์ ์ ํธ๋ง ์ฒ๋ฆฌ (
_lastSignalIndexProcessed์ฌ์ฉ)
๐งท 2) ํฌ์ง์ ๋งคํ (CLOSE ์๋์ ์ํด)
SLAVE๊ฐ ๊ฑฐ๋๋ฅผ ์ด ๋ ์ ์ฅํ๋ ๋ด์ฉ:
๐งฉ MasterPositionId โ SlavePositionId
์ด ๋งคํ์ LocalStorage์๋ ์ ์ฅ๋์ด ์ฌ์์ ํ์๋ ์ ์ง๋ฉ๋๋ค:
- โ ์ฌ๋ถํ ํ์๋ CLOSE ์๋
- โ MODIFY๊ฐ ์ฌ๋ฐ๋ฅธ ํฌ์ง์ ์ ์ฐพ์
๐งญ 3) ์ฌ๋ณผ ๋ณํ (MASTER ์ฌ๋ณผ โ SLAVE ์ฌ๋ณผ)
๐บ๏ธ ์ฌ๋ณผ ๋งต (MASTER=SLAVE;...)
๋ธ๋ก์ปค/๊ณ์ ๊ฐ ์ฌ๋ณผ ์ด๋ฆ์ด ๋ค๋ฅผ ๋ ์ฌ์ฉ.
ํ์:
MASTER=SLAVE;MASTER2=SLAVE2;...
์์ (์ฌ์ฉ์ ์ฌ๋ก):
- MASTER๊ฐ
USTEC์ด๋ฆผ - SLAVE๋
US100๊ฑฐ๋ํด์ผ ํจ
โก๏ธ USTEC=US100
โ
์ผ์ชฝ = MASTER์์ ์ค๋ ์ฌ๋ณผ
โ
์ค๋ฅธ์ชฝ = SLAVE ๋ธ๋ก์ปค์ ์ฌ๋ณผ
๐ 4) ๊ฑฐ๋๋ ๋ก์ง (ํต์ฌ ๋ถ๋ถ) ๐ฅ
โ ๋กํธ/์๋ ๋จ์๋ก ์๋ (์์์ ์ง์)
์์์ (0.10, 0.01 ๋ฑ)์ ์ฒ๋ฆฌํ๊ธฐ ์ํด SLAVE๋:
- ์ํ๋ ๋กํธ ์ ๊ณ์ฐ
- ๊ณฑ์ ๊ธฐ / ์ต์๊ฐ / ๋จ๊ณ ์ ์ฉ
- ๋กํธ๋ฅผ ๊ฑฐ๋๋์ผ๋ก ๋ณํ (
QuantityToVolumeInUnits(lots)์ฌ์ฉ) - double ๊ฑฐ๋๋์ ๋ฐ๋ ์ค๋ฒ๋ก๋๋ฅผ ์ฌ์ฉํด ์ฃผ๋ฌธ ์ ์ก โ
์ด ๋๋ถ์ ๋ธ๋ก์ปค๊ฐ ์๋ก ๋ค๋ฅธ ๋กํธ ์ ๋ฐ๋ ๊ท์น์ ์ ์ฉํด๋ ๊ฒฌ๊ณ ํ๊ฒ ์๋ํฉ๋๋ค.
โ๏ธ ๋งค๊ฐ๋ณ์ ์ค๋ช (์์ด์ฝ ํฌํจ)
๐งฉ ํต์ฌ
- ๐งญ ๋ชจ๋
-
Master= ์ ํธ ๋ฐํSlave= ์ ํธ ์์ ๋ฐ ๊ฑฐ๋ ๋ณต์ฌ
- ๐งท ๋ณต์ฌ ๊ทธ๋ฃน ID
-
- ํต์ ์ฑ๋. MASTER์ SLAVE๊ฐ ์ผ์นํด์ผ ํจ (์:
DEFAULT)
- ํต์ ์ฑ๋. MASTER์ SLAVE๊ฐ ์ผ์นํด์ผ ํจ (์:
- โฑ๏ธ ํด๋ง ๊ฐ๊ฒฉ (์ด)
-
- SLAVE๊ฐ N์ด๋ง๋ค ์ ์ ํธ ํ์ธ
- ๐ ๋๋ฒ๊ทธ ๋ชจ๋
-
- ์์ธ ๋ก๊ทธ ์ถ๋ ฅ (์ค์ ์ ๊ถ์ฅ)
๐บ๏ธ ์ฌ๋ณผ ๋ณํ
- ๐งพ ์ฌ๋ณผ ๋งต (MASTER=SLAVE;...)
-
- ์:
USTEC=US100;XAUUSD=GOLD;NAS100=USTEC
- ์:
๐๏ธ ๊ฑฐ๋๋ ์กฐ์ (๊ฐ์ฅ ์ค์) โ
๐ข ์ ์ญ ๊ณฑ์ ๊ธฐ
- โ ๊ฑฐ๋๋ ๊ณฑ์ ๊ธฐ
-
- ๋ณต์ฌ๋ ๋ชจ๋ ๋กํธ์ ์ ์ฉ:
desiredLots = masterLots * VolumeMultiplier
๐๏ธ ์ฌ๋ณผ๋ณ ๊ณฑ์ ๊ธฐ (์ฃผ์ ๋๊ตฌ)
- ๐งท ๊ฑฐ๋๋ ๊ณฑ์ ๊ธฐ ๋งต (SYM=mult;...)
-
- ์ฌ๋ณผ๋ณ ๊ณฑ์ ๊ธฐ ์ฌ์ ์ (SLAVE ์ธก ์ฌ๋ณผ)
- ์:
-
US100= 0. 10- ์ดํ๋ฆฌ์ ํ์๋ ๊ฐ๋ฅ:
US100=0,10
โ ์ด๋ ๊ฒ ํ๋ฉด ๋ค์์ ๋ฌ์ฑํ ์ ์์ต๋๋ค: MASTER์ 1.00 โ SLAVE์ 0.10
๐งฑ ๋ธ๋ก์ปค ๋กํธ ์ ์ฝ ์กฐ๊ฑด (์ต์ ๋ฐ ๋จ๊ณ)
- ๐งฑ ์ต์ ์๋ ๊ธฐ๋ณธ๊ฐ (0=๋นํ์ฑ)
-
- ํ์ฑํ ์ ์ ์ญ ์ต์ ๋กํธ
- ๐งฑ ์ต์ ์๋ ๋งต (SYM=val;...)
-
- ์ฌ๋ณผ๋ณ ์ต์ ๋กํธ
- ์:
US100=0. 10
- ๐ช ์๋ ๋จ๊ณ ๊ธฐ๋ณธ๊ฐ (0=๋นํ์ฑ)
-
- ํ์ฑํ ์ ์ ์ญ ๋จ๊ณ
- ๐ช ์๋ ๋จ๊ณ ๋งต (SYM=val;...)
-
- ์ฌ๋ณผ๋ณ ๋จ๊ณ
- ์:
US100=0. 10โ ํ์ฉ ๊ฐ: 0.10, 0.20, 0.30โฆ
๐งฏ ์์ ๋์
- ๐งท ์ต์ ์๋์ ๊ณ ์ ๋กํธ๋ก ์ฌ์ฉ
-
- ๋ง์ฝ
true๋ฉด: SLAVE๋ ๋ง์คํฐ ํฌ๊ธฐ๋ฅผ ๋ฌด์ํ๊ณ ํญ์ MinQty ์ฌ์ฉ (๊ณ ์ ํฌ๊ธฐ)
- ๋ง์ฝ
- โ ๏ธ ์ต์ ์ดํ ๋์
-
UseMin= ์ต์ ์ดํ์ผ ๊ฒฝ์ฐ ์ต์๊ฐ์ผ๋ก ์ฌ๋ฆผSkip= ์ต์ ์ดํ์ผ ๊ฒฝ์ฐ ์ด์ง ์์
- ๐ ์๋ชป๋ ๊ฑฐ๋๋ ์๋
-
- ๋ธ๋ก์ปค๊ฐ BadVolume์ ๋ฐํํ๋ฉด ์ต๋ Nํ๊น์ง ์์ ์กฐ์ ์๋
๐ฏ SL/TP ๋ณต์ฌ ๋ก์ง
- ๐ก๏ธ ์ฌ๋ณผ์ด ๋ค๋ฅผ ๋ SL/TP๋ฅผ ๊ฑฐ๋ฆฌ๋ก ๋ณต์ฌ
-
- MASTER์ SLAVE ์ฌ๋ณผ์ด ๋ค๋ฅด๋ฉด:
- SL/TP๋ ์ ๋ ๊ฐ๊ฒฉ์ด ์๋ ์ง์ ์ ์ผ๋ก๋ถํฐ์ ๊ฑฐ๋ฆฌ๋ก ๋ณต์ฌ๋จ
- ์ด๋ ๊ฒ ํ๋ฉด ๋๊ตฌ ๊ฐ ์ํ ์ ์ด๊ฐ ์ผ๊ด๋๊ฒ ์ ์ง๋จ
โ ๊ถ์ฅ ์ค์ (USTEC โ US100, SLAVE ๋กํธ = 0.10)
SLAVE์์:
๐บ๏ธ ์ฌ๋ณผ ๋ณํ:
Symbol Map=USTEC=US100
๐๏ธ ๊ฑฐ๋๋ ์กฐ์ :
Volume Multiplier Map=US100=0,10
๐งฑ ๋ธ๋ก์ปค ์ ์ฝ ์กฐ๊ฑด:
Min Qty Map=US100=0,10Qty Step Map=US100=0,10
๊ฒฐ๊ณผ:
- โ MASTER 1.00 โ SLAVE 0.10 (US100์์)
โ๏ธ ์ค์: ๋ก์ปฌ/VPS ์ ์ฉ (ํด๋ผ์ฐ๋ ์๋) โ
๐ฅ๏ธ ๋ก์ปฌ/VPS โ
MASTER์ SLAVE๊ฐ ๋์ผํ LocalStorageScope.Device (๊ฐ์ ๊ธฐ๊ธฐ/ํ๊ฒฝ)๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์๋ํจ.
โ๏ธ cTrader Cloud โ
ํด๋ผ์ฐ๋ ์ธ์คํด์ค๊ฐ ๊ฒฉ๋ฆฌ๋์ด LocalStorage๋ฅผ ๊ณต์ ํ์ง ๋ชปํ๊ณ SLAVE๊ฐ MASTER ์ ํธ๋ฅผ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์.
โ ๊ฒฐ๋ก :
- โ๏ธ ๊ฐ์ PC ๋๋ ๋ ์ธ์คํด์ค๊ฐ ํจ๊ป ์คํ๋๋ VPS์์ ์ฌ์ฉ
- โ ํด๋ผ์ฐ๋์์๋ ์ธ๋ถ ์ค๊ณ๊ธฐ(HTTP/WebSocket ์๋ฒ)๊ฐ ํ์
์์ฝ
Key features include:
- Position mapping to maintain correct trade management across restarts.
- Symbol translation via customizable symbol maps to handle differing broker symbol names.
- Volume scaling with global and per-symbol multipliers, supporting decimal lot sizes and broker-specific minimum quantity and step constraints.
- Safety behaviors such as fixed lot sizing and handling of trades below minimum lot sizes.
- Stop loss and take profit copying as distance from entry price when symbols differ, preserving consistent risk control.
Parameters include mode selection (MASTER or SLAVE), communication group ID, polling interval, debug mode, symbol maps, volume multipliers, and broker lot constraints. The bot is not compatible with cTrader Cloud due to isolated instances but functions reliably on local or VPS setups where MASTER and SLAVE share the same environment.
๊ณ ๊ฐ ๋ฆฌ๋ทฐ
5 | 67 % | |
4 | 0 % | |
3 | 33 % | |
2 | 0 % | |
1 | 0 % |