קופי-טריידינג פירושו שעסקאות של טריידר ראשי מועתקות אוטומטית לחשבונות המנויים. דמיינו: אתם מוצאים טריידר עם תשואה חודשית של 30%. אתם נרשמים, אבל האות מגיע באיחור של 10 שניות — המחיר כבר זז, והעסקה לא בוצעה. אפליקציה ניידת חייבת לפתור שתי משימות שונות מהותית: עבור הטריידר הראשי — פרסום עסקאות וניהול מנויים, עבור המעתיק — קבלת אותות, הגדרת פרמטרי העתקה ומעקב אחר תוצאות. הצוות שלנו, עם ניסיון של 5+ שנים באפליקציות מסחר, יישם למעלה מ-20 פרויקטים של קופי-טריידינג, ואנחנו יודעים איך להימנע מבעיות כאלה. הניסיון שלנו מבטיח עמידה בלוחות זמנים ואיכות גבוהה.
כיצד בנוי אות לקופי-טריידינג?
אות הוא לא רק הודעה "קנה BTC". זהו אובייקט מובנה עם מספיק הקשר לביצוע אוטומטי:
struct TradingSignal: Codable {
let id: UUID
let masterId: String
let pair: String // "BTC/USDT"
let side: TradeSide // .long, .short
let entryPrice: Decimal? // nil для market ордера
let takeProfit: [Decimal] // несколько TP уровней
let stopLoss: Decimal
let leverage: Int? // для фьючерсов
let riskPercent: Decimal // % от депозита подписчика
let comment: String?
let publishedAt: Date
let validUntil: Date? // сигнал устаревает
}struct TradingSignal: Codable { let id: UUID let masterId: String let pair: String // "BTC/USDT" let side: TradeSide // .long, .short let entryPrice: Decimal? // nil для market ордера let takeProfit: [Decimal] // несколько TP уровней let stopLoss: Decimal let leverage: Int? // для фьючерсов let riskPercent: Decimal // % от депозита подписчика let comment: String? let publishedAt: Date let validUntil: Date? // сигнал устаревает } במקום סכום קבוע — כי למנויים יש הפקדות שונות. 2% מ-$1,000 ו-2% מ-$50,000 הם סכומים שונים אבל סיכון זהה.
משלוח אותות: זמן השהיה קריטי
אות לכניסה לפוזיציה הוא רגיש לזמן. המחיר זז בזמן שהאות נוסע. דרישות זמן ההשהיה תלויות באסטרטגיה של הטריידר הראשי: עבור סווינג טריידינג (פוזיציות המוחזקות ימים), push עם השהיה של 5-10 שניות מספיק. עבור סקלפינג, WebSocket הוא חובה — push איטי מדי. WebSocket, פרוטוקול תקני לפי RFC 6455, מבטיח זמן השהיה של <1 שנייה, מהיר פי 10 מהודעות push — זו ההשוואה המרכזית לבחירת הטכנולוגיה.
WebSocket למשתמשים פעילים באפליקציה. השרת משדר את האות לכל המנויים המחוברים של הטריידר הראשי בו-זמנית.
FCM/APNs push להודעות רקע. נקודה חשובה: push אינו מבטיח משלוח — FCM עלול לדחות. עבור אותות מסחר זה בלתי מתקבל על הדעת. לכן, בעת פתיחת האפליקציה, תמיד סנכרנו אותות שהוחמצו דרך riskPercent.
// Android — получение и обработка сигнала
class SignalReceiver @Inject constructor(
private val signalRepository: SignalRepository,
private val orderExecutor: OrderExecutor,
private val notificationManager: AppNotificationManager,
) {
suspend fun handle(signal: TradingSignal) {
signalRepository.save(signal)
val subscription = signalRepository.getSubscription(signal.masterId) ?: return
if (!subscription.autoExecute) {
// Только уведомление, пользователь решает вручную
notificationManager.showSignal(signal)
return
}
// Автоисполнение с проверками
val account = accountRepository.getCurrent()
val orderSize = account.balance * subscription.riskPercent / 100
if (orderSize < exchange.minimumOrderSize(signal.pair)) {
notificationManager.showError("Недостаточно баланса для исполнения сигнала")
return
}
val result = orderExecutor.execute(signal, orderSize)
notificationManager.showExecutionResult(signal, result)
}
} כיצד להגדיר פרמטרי העתקה?
כל מנוי מגדיר פרמטרים בנפרד עבור כל טריידר ראשי:
גודל פוזיציה:
- אחוז קבוע מההפקדה (מעקב אחר הסיכון של הטריידר הראשי)
- סכום קבוע ב-USDT
- מכפיל של גודל הטריידר הראשי (לדוגמה, 0.5x אם הנפח של הטריידר הראשי גדול מדי)
מסנני אותות:
- לונג בלבד / שורט בלבד / שני הכיוונים
- זוגות (אפשר רק BTC, ETH; התעלם מאלט�וינס)
- מינוף מקסימלי (אל תעתיק אם הטריידר הראשי משתמש ב-> 10x)
- מספר מקסימלי של פוזיציות בו-זמנית
מצב ביצוע:
- אוטומטי (מיד עם קבלת האות)
- עם אישור (push → המשתמש לוחץ על "בצע")
- הודעות בלבד (ללא ביצוע, מעקב אחר אסטרטגיית הטריידר הראשי)
טופס ההגדרות הוא אלמנט UX מרכזי. המשתמש חייב להבין את ההשלכות של כל פרמטר. עבור אחוז מההפקדה — הצג חישוב: "עם הפקדה של $2,000 וסיכון של 2% — $40 לעסקה."
מדריך שלב-אחר-שלב להגדרת העתקה:
- בחר טריידר ראשי בקטלוג.
- הגדר את אחוז הסיכון מההפקדה.
- הגדר מסננים לפי זוגות ומינוף.
- בחר מצב ביצוע: אוטומטי, עם אישור, או הודעות בלבד.
- אשר את המנוי.
מסך הטריידר הראשי: מה המנוי רואה
הפרופיל של הטריידר הראשי מכיל מדדי מסחר, לא טקסט שיווקי:
| מדד | ערך |
|---|---|
| אחוז עסקאות רווחיות | 64% |
| יחס רווח | 1.87 |
| משיכה מקסימלית | −18.4% |
| יחס שארפ | 1.31 |
| עסקאות (30 יום) | 142 |
| מנויים | 2,840 |
| רווח חודשי | +12.3% |
עקומת ההון של הטריידר הראשי היא חובה. המנויים חייבים לראות לא רק "+30% בשנה" אלא פרטים: קיומו של רמה ארוכה של משיכה, עלייה חדה בתחילה וקיפאון לאחר מכן.
התוצאות שלי כמעתיק
מסך נפרד — רווח והפסד מהעתקת טריידר ראשי ספציפי. הנתונים שונים מאלה של הטריידר הראשי: מחירי ביצוע שונים (החלקה), זמני כניסה שונים (עיכוב במשלוח האות), גדלי פוזיציה שונים.
השוואה: עקומת ההון של הטריידר הראשי מול התוצאות שלי על אותו גרף. אם הפער גדול — נתחו סיבות (החלקה, אותות שהוחמצו, מגבלות מסנן).
// iOS, SwiftUI — сравнение кривых — <cite>Apple Documentation</cite>
Chart {
ForEach(masterEquity) { point in
LineMark(
x: .value("Дата", point.date),
y: .value("PnL", point.pnl),
series: .value("Тип", "Мастер")
)
.foregroundStyle(.blue)
}
ForEach(myEquity) { point in
LineMark(
x: .value("Дата", point.date),
y: .value("PnL", point.pnl),
series: .value("Тип", "Мои результаты")
)
.foregroundStyle(.green)
}
}
.chartLegend(.visible) חיפוש ודירוג טריידרים ראשיים
קטלוג טריידרים ראשיים עם מסננים: לפי אחוז עסקאות רווחיות, לפי משיכה, לפי מספר עסקאות, לפי תקופת פעילות (מינימום 3 חודשים של מסחר פעיל). מיון ברירת מחדל לפי יחס שארפ — המדד היחיד שמתחשב גם בתשואה וגם בסיכון בו-זמנית.
כרטיס טריידר ראשי ברשימה — קומפקטי: תמונת פרופיל, כינוי, 3 מדדים מרכזיים, מיני גרף עקומת הון, כפתור "הרשם".
מה כלול בעבודה
- משלוח אותות דרך WebSocket + FCM/APNs עם סנכרון אותות שהוחמצו
- טופס הגדרות העתקה עם מסננים וחישוב גודל פוזיציה
- פרופיל טריידר ראשי עם מדדים ועקומת הון
- מסך התוצאות שלי עם השוואה לטריידר הראשי
- קטלוג טריידרים ראשיים עם סינון ודירוג
- היסטוריית אותות: התקבלו, בוצעו, הוחמצו (עם סיבה)
מידע נוסף על סינון אותות
סינון אותות מאפשר למנוי להגביל סיכון. לדוגמה, לא לכלול מסחר באלטקוינס עם תנודתיות גבוהה או להגביל מינוף מקסימלי. כל המסננים מוחלים לפני הביצוע, ומונעים עסקאות לא רצויות.לוח זמנים
| תפקיד | פונקציות | לוח זמנים |
|---|---|---|
| מעתיק (מנוי) | אותות, הגדרות, תוצאות | 10–14 ימים |
| טריידר ראשי | פרסום, מנויים, אנליטיקה | 7–10 ימים |
| מערכת מלאה | קטלוג, דירוגים, שני התפקידים | 20–28 ימים |
העלות מחושבת באופן אישי לאחר ניתוח דרישות. רווחי העתקה יכולים להגיע ל-$500 בחודש, וחיסכון בהחלקה עד $200 בשנה. צרו קשר כדי לדון בפרויקט שלכם — אנו מיישמים את מחזור הפיתוח המלא של מערכת אותות. בקשו הדגמה: נעריך את הארכיטקטורה, לוח הזמנים והתקציב. קבלו ייעוץ לפרויקט שלכם — נעריך את הארכיטקטורה ונציע פתרון אופטימלי.







