복합지표 전략 추가

This commit is contained in:
Macbook
2026-06-12 13:26:53 +09:00
parent 9208418c33
commit 52137cf1db
27 changed files with 2712 additions and 55 deletions
+17 -2
View File
@@ -42,6 +42,12 @@ export type StrategyFlowNodeData = {
onUpdateCondition?: (nodeId: string, condition: ConditionDSL) => void;
/** Stoch 과열×보조 복합 — 보조지표 변경 */
onUpdateStochPairSecondary?: (nodeId: string, secondaryIndicator: string) => void;
/** 9·20 신고가/신저가 복합 — 필터 강도 변경 */
onUpdatePriceExtremeFilterLevel?: (nodeId: string, filterLevel: 'strict' | 'balanced' | 'relaxed') => void;
/** 33변곡 EMA+채널 복합 — 필터 강도 변경 */
onUpdateInflection33FilterLevel?: (nodeId: string, filterLevel: 'strict' | 'balanced' | 'relaxed') => void;
/** 추천 안정형 전략 — 필터 강도 변경 */
onUpdateStableStrategyFilterLevel?: (nodeId: string, filterLevel: 'strict' | 'balanced' | 'relaxed') => void;
/** AND ↔ OR 전환 */
onChangeLogicGateType?: (nodeId: string, gateType: 'AND' | 'OR') => void;
onDropTarget?: (targetId: string, data: { type: string; value: string; label: string }, flowPos: { x: number; y: number }) => void;
@@ -474,7 +480,7 @@ function layoutTree(
signalTab: 'buy' | 'sell',
callbacks: Pick<
StrategyFlowNodeData,
'onDelete' | 'onUpdateCondition' | 'onUpdateStochPairSecondary' | 'onChangeLogicGateType'
'onDelete' | 'onUpdateCondition' | 'onUpdateStochPairSecondary' | 'onUpdatePriceExtremeFilterLevel' | 'onUpdateInflection33FilterLevel' | 'onUpdateStableStrategyFilterLevel' | 'onChangeLogicGateType'
| 'onDropTarget' | 'onDragOverTarget' | 'onDragLeaveTarget'
>,
dragOverId: string | null,
@@ -497,6 +503,9 @@ function layoutTree(
onDelete: callbacks.onDelete,
onUpdateCondition: callbacks.onUpdateCondition,
onUpdateStochPairSecondary: callbacks.onUpdateStochPairSecondary,
onUpdatePriceExtremeFilterLevel: callbacks.onUpdatePriceExtremeFilterLevel,
onUpdateInflection33FilterLevel: callbacks.onUpdateInflection33FilterLevel,
onUpdateStableStrategyFilterLevel: callbacks.onUpdateStableStrategyFilterLevel,
onChangeLogicGateType: callbacks.onChangeLogicGateType,
onDropTarget: callbacks.onDropTarget,
onDragOverTarget: callbacks.onDragOverTarget,
@@ -626,7 +635,7 @@ function appendOrphanFlowNodes(
signalTab: 'buy' | 'sell',
callbacks: Pick<
StrategyFlowNodeData,
'onDelete' | 'onUpdateCondition' | 'onUpdateStochPairSecondary' | 'onChangeLogicGateType'
'onDelete' | 'onUpdateCondition' | 'onUpdateStochPairSecondary' | 'onUpdatePriceExtremeFilterLevel' | 'onUpdateInflection33FilterLevel' | 'onUpdateStableStrategyFilterLevel' | 'onChangeLogicGateType'
| 'onDropTarget' | 'onDragOverTarget' | 'onDragLeaveTarget'
>,
): void {
@@ -649,6 +658,9 @@ function appendOrphanFlowNodes(
onDelete: callbacks.onDelete,
onUpdateCondition: callbacks.onUpdateCondition,
onUpdateStochPairSecondary: callbacks.onUpdateStochPairSecondary,
onUpdatePriceExtremeFilterLevel: callbacks.onUpdatePriceExtremeFilterLevel,
onUpdateInflection33FilterLevel: callbacks.onUpdateInflection33FilterLevel,
onUpdateStableStrategyFilterLevel: callbacks.onUpdateStableStrategyFilterLevel,
onChangeLogicGateType: callbacks.onChangeLogicGateType,
onDropTarget: callbacks.onDropTarget,
onDragOverTarget: callbacks.onDragOverTarget,
@@ -673,6 +685,9 @@ export function logicNodeToFlow(
| 'onDelete'
| 'onUpdateCondition'
| 'onUpdateStochPairSecondary'
| 'onUpdatePriceExtremeFilterLevel'
| 'onUpdateInflection33FilterLevel'
| 'onUpdateStableStrategyFilterLevel'
| 'onDropTarget'
| 'onDragOverTarget'
| 'onDragLeaveTarget'