Твоя схема не заработала, ( данные с биржи не шли), поправил и все отлично!
Add(MainForm,7714850,819,322)
{
Width=1062
Height=542
Caption="trade"
Point(onClose)
link(onCreate,10289546:doEvent1,[(905,342)(905,321)])
link(onClose,2066707:doConsoleTerminate,[(943,349)(943,377)])
}
Add(DateConvertor,15786644,1498,343)
{
Mode=16
Point(Result)
link(onResult,7728186:doText,[])
}
Add(Label,7728186,1547,343)
{
Width=1046
Height=35
Align=2
Font=[Lucida Console,20,0,0,204]
Caption=""
AutoSize=1
Alignment=2
}
Add(BlockFind,2689203,1176,343)
{
IncludeBlock=1
StartBlock="{"
EndBlock="}"
link(onSearch,7308410:doEvent1,[])
}
Add(Math,2921107,1393,343)
{
OpType=3
Op2=1000
link(onResult,12878153:doOperation,[])
}
Add(Case,1283714,1393,392)
{
link(onNextCase,9339927:doCompare,[])
}
Add(MultiStrData,14740655,1267,343)
{
Char=","
From=1
Count=6
link(onPart1,8507035:doSplit,[])
link(onPart4,9913632:doSplit,[(1334,370)(1334,398)])
link(onPart5,12293705:doSplit,[(1327,377)(1327,517)])
}
Add(StrPart,8507035,1344,343)
{
Char=":"
link(onSplit,2921107:doOperation,[])
}
Add(StrPart,9913632,1344,392)
{
Char=":"
link(onSplit,1283714:doCase,[])
}
Add(Plotter,4825959,1428,266)
{
Top=35
Width=1046
Height=338
Align=5
Name="Plot"
LeftMargin=50
MouseControl=1
}
Add(If_else,9339927,1442,392)
{
Type=4
Op2=Integer(1)
link(onTrue,5815444:doEvent1,[])
}
Add(Hub,7308410,1225,343)
{
link(onEvent1,14740655:doSplit,[])
link(onEvent2,8339777:doEnum,[(1257,356)(1257,601)])
}
Add(Str_Enum,8339777,1344,595)
{
Delimiter=","
link(onEnum,3396544:doOperation,[])
}
Add(MST_RowAction,3397609,1547,581)
{
Action=2
MSTControl="asd"
Point(Index)
}
Add(MT_String,2667156,1442,581)
{
Delimeter=":"
link(onResult,10979704:doAdd,[])
link(Str1,8339777:Part,[(1448,572)(1434,572)(1434,642)(1357,642)])
}
Add(Hub,10289546,959,315)
{
OutCount=3
link(onEvent1,7144214:doFor,[(1001,321)(1001,286)])
link(onEvent2,4095609:doString,[(980,328)(980,370)])
}
Add(MST_RowAction,1436905,1078,280)
{
MSTControl="asd"
}
Add(For,7144214,1029,280)
{
End=10
link(onEvent,1436905:doRowAction,[])
}
Add(MT_Add,10979704,1498,581)
{
InputMT=1
link(onAdd,3397609:doRowAction,[])
link(Data,3396544:Result,[(1504,572)(1490,572)(1490,635)(1399,635)])
}
Add(Math,3396544,1393,595)
{
OpType=1
Op2=1
link(onResult,2667156:doMTString,[])
link(Op1,8339777:NumSubStr,[(1399,586)(1385,586)(1385,635)(1350,635)])
}
Add(Replace,5437590,1078,343)
{
SubStr="""
link(onReplace,13454937:doSearch,[])
}
Add(BlockFind,13454937,1127,343)
{
StartBlock="{e:trade"
EndBlock="true}"
link(onSearch,2689203:doSearch,[])
}
Add(Math,12878153,1442,343)
{
Op2=10800
link(onResult,15786644:doConvert,[])
}
Add(PlotLines,15557708,1547,392)
{
Grapher="Plot"
Color=16711680
Step=1
Name="base"
}
Add(PlotHistogram,9391493,1442,511)
{
Grapher="Plot2"
Color=16776960
Step=1
BgColor=16776960
Offset=1
Axis="X0"
}
Add(Plotter,7412765,1477,266)
{
Top=373
Width=1046
Height=130
Align=4
Name="Plot2"
LeftMargin=50
MouseControl=1
}
Add(Case,4763561,1393,511)
{
link(onNextCase,9391493:doAdd,[])
}
Add(StrPart,12293705,1344,511)
{
Char=":"
link(onSplit,4763561:doCase,[])
}
Add(MTStrTbl,116350,1582,266)
{
Left=55
Top=55
Width=155
Height=163
Color=-16777201
Ctl3D=1
Name="asd"
Columns=#4:1=30|5:2=120|
Style=4
Grid=0
DrawManager="dsa"
}
Add(PlotAxis,16365127,1547,511)
{
Grapher="Plot2"
Name="X0"
Color=16711680
Style=1
}
Add(LinkTip,9547046,756,217)
{
Link="https://github.com/vi/websocat"
Font=[MS Sans Serif,8,0,16711680,1]
}
Add(Hub,5815444,1498,392)
{
link(onEvent1,15557708:doAdd,[])
link(onEvent2,15485904:doOperation,[(1523,405)(1523,447)(1334,447)(1334,461)])
}
Add(Math,15485904,1344,455)
{
OpType=2
Op2=100
link(onResult,13648928:doCalcDelta,[])
}
Add(SampleDelta,13648928,1393,455)
{
link(onCalcDelta,6805806:doAdd,[])
}
Add(Plotter,3246690,1533,266)
{
Top=373
Width=1046
Height=130
Align=4
Name="Plot3"
LeftMargin=50
MouseControl=1
}
Add(PlotHistogram,6805806,1442,455)
{
Grapher="Plot3"
Color=16711680
Step=1
BgColor=16711680
Offset=1
Axis="X0"
}
Add(PlotAxis,10952898,1547,455)
{
Grapher="Plot3"
Name="X1"
Color=16711680
Style=1
}
Add(VisualStrings,9466677,987,175)
{
Lines=#58:wss://stream.binance.com:9443/stream?streams=btcusdt@trade|
Width=816
}
Add(FormatStr,4095609,987,364)
{
Mask="try{ \r\n Do{\r\n $URL = '%1'\r\n $WS = New-Object System.Net.WebSockets.ClientWebSocket \r\n $CT = New-Object System.Threading.CancellationToken\r\n $WS.Options.UseDefaultCredentials = $true\r\n\r\n $Conn = $WS.ConnectAsync($URL, $CT)\r\n While (!$Conn.IsCompleted) { \r\n Start-Sleep -Milliseconds 100 \r\n }\r\n $buffer = [Net.WebSockets.WebSocket]::CreateClientBuffer(1024,1024)\r\n\r\n While ($WS.State -eq 'Open') { \r\n \r\n $Conn = $WS.ReceiveAsync($buffer, $CT)\r\n While (!$Conn.IsCompleted) { \r\n Start-Sleep -Milliseconds 100 \r\n }\r\n\r\n $jsonResult = [Text.Encoding]::UTF8.GetString($buffer, 0, $Conn.Result.Count)\r\n $jsonResult #| ConvertFrom-Json \r\n\r\n } \r\n } Until ($WS.State -ne 'Open')\r\n\r\n}Finally{\r\n\r\n If ($WS) { \r\n $WS.Dispose()\r\n }\r\n\r\n}"
link(onFString,2066707:doConsoleExec,[])
link(Str1,9466677:Text,[])
}
Add(WinExec,2066707,1036,350)
{
FileName="POWERSHELL"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(onConsoleTerminate)
Point(doConsoleTerminate)
link(onConsoleResult,5437590:doReplace,[(1073,363)(1073,349)])
}
Какие библиотеки подойдут на твой взгляд, какая цена у них ? Если в бюджет 100$ я уложусь ( за готовый компонент ) то это приемлемо для меня. Иначе думаю нужно искать какой-то альтернативный выход.
насчет Plotter, после отрисовки данных примерно с час - 2 Начинает нехило так грузить систему.