Вверх ↑
Этот топик читают: Гость
Ответов: 1840
Рейтинг: 123
#16: 2021-07-26 15:59:16 ЛС | профиль | цитата
Леонид писал(а):
Это про какие "+-" речь-то

Ответов: 1821
Рейтинг: 123

И распальцовка вверх и вниз, чай не в Риме живём и римлян не осталось.
Неприятие из мелочей складывается.
Интеллигентней надо - девяностые прошли, а всё на том же уровне.
Не, в партию не надо, пишем в СпортЛото!!
Так точно!
То в партию, то в говно вступают - ни в коем случае, ботинки испачкаются и вонять будет долго!
пишем в СпортЛото
Вместо чтоб поесть, помыться, уколоться и забыться,
Вся безумная больница у экрана собралась.…
Давайте проголосуем, ведь у нас демократическое общество.
Демократия, ничего общего не имеет с решением большинства, а это мои предположения, что так правильно, или удобно Мне.
Кстати, я тебя цитирую! https://gamedev.ru/code/forum/?id=262224&page=4&m=5421470#m47 и тебя дон Педро.
Посмотри вверх и вниз (лучше отдельной ссылкой, не работает тута). За тебя не стыдно, а за себя... (у вас ситичек весёленький есть? Приходите, обхохочетесь.)
А от нас г.л. Мргулис штепсель прячет!

Редактировалось 25 раз(а), последний 2021-07-26 19:35:04
карма: 5

0
Ответов: 1988
Рейтинг: 633
#17: 2021-07-26 20:23:17 ЛС | профиль | цитата
Pavel писал(а):
А вот главный минус, это производительность такого решения.
Pavel, а вы Леониду, по рукам за такую схему с использованием Image вместо того чтоб на PaintBox-е отрисовать.
Леонид, ай ай ай

Add(MainForm,11257063,161,210)
{
Width=1003
Height=690
link(onCreate,3746522:doWork1,[(242,230)(242,258)(431,258)(431,300)])
}
Add(If_else,14926331,301,217)
{
Type=5
Op2=String()
link(onTrue,16418445:doSearch,[])
}
Add(COM,16655693,252,210)
{
link(onRead,14926331:doCompare,[])
}
Add(BlockFind,16418445,350,217)
{
IncludeBlock=1
StartBlock="T="
EndBlock="C"
link(onSearch,12143084:doString,[])
}
Add(StrList,5120985,574,217)
{
AddType=1
}
Add(Time,12263037,399,168)
{
Format="h:m:s"
Point(DateTime)
}
Add(FormatStr,12143084,399,217)
{
Mask="%1;%2"
link(onFString,16056977:doEvent1,[])
link(Str1,12263037:FormatTime,[])
}
Add(Hub,5300600,490,217)
{
link(onEvent1,5120985:doAdd,[])
link(onEvent2,11935530:doData,[(515,230)(515,237)])
}
Add(DoData,11935530,525,231)
{
Data=Integer(86400)
link(onEventData,5120985:doDelete,[])
}
Add(InfoTip,9866087,483,182)
{
Info=#24:Последние 86400 отсчётов|
Font=[MS Sans Serif,8,1,255,1]
Width=141
Height=88
}
Add(MultiElement,2353023,392,301)
{
link(onEvent1,12125055:doWork2,[])
}
BEGIN_SDK
Add(EditMulti,7931011,21,21)
{
EventCount=1
WorkCount=2
Width=356
link(doWork1,2156829:doOperation,[(151,27)(151,76)])
link(doWork2,1359222:doNext,[(88,34)(88,139)])
}
Add(MathParse,6975282,175,133)
{
DataCount=1
MathStr="round(sin(0.01*%1)*5,0.001) + 22"
link(onResult,11553943:doCalc,[])
}
Add(MathParse,11553943,238,133)
{
MathStr="%1/86400+%2"
link(onResult,4631172:doConvert,[])
link(X1,1359222:Count,[(244,124)(230,124)(230,180)(132,180)])
link(X2,2156829:Result,[(251,110)(174,110)])
}
Add(DateConvertor,4631172,280,133)
{
Mode=9
Format="hh:mm:ss"
link(onResult,10061548:doString,[])
}
Add(FormatStr,10061548,322,133)
{
Mask="%1;%2"
link(onFString,7931011:onEvent1,[(361,139)(361,27)])
link(Str2,6975282:Result,[(335,116)(216,116)(216,173)(181,173)])
}
Add(Time,7944161,161,28)
{
Point(DateTime)
}
Add(Math,2156829,168,70)
{
OpType=1
Op2=1
link(onResult,1359222:doReset,[(207,76)(207,125)(95,125)(95,153)])
link(Op1,7944161:DateTime,[])
}
Add(Counter,1359222,126,133)
{
Max=86399
link(onNext,6975282:doCalc,[])
}
END_SDK
Add(Hub,16056977,448,217)
{
link(onEvent1,5300600:doEvent1,[])
link(onEvent2,12125055:doWork1,[(480,230)])
}
Add(InfoTip,9603159,140,273)
{
Info=#32:Иммитация ежесекундных измерений|
Font=[MS Sans Serif,8,1,255,1]
Width=316
Height=81
}
Add(ChildPanel,3746522,511,294)
{
}
BEGIN_SDK
Add(EditMulti,11810949,21,21)
{
EventCount=1
WorkCount=2
Width=846
Height=522
link(doWork1,14793498:doWork1,[])
link(doWork2,1998230:doEvent1,[(39,34)(39,251)])
}
Add(Panel,12986965,91,448)
{
Left=1
Top=195
Width=985
Height=458
}
Add(Bitmap,14586978,392,189)
{
Picture=[ZIP5207000078DA73F20D626700033320D6006246203ECE08A225C0E232507914D000C107EE1C201B53AA9FDAE60C363751238C47C37A34AC47C37A34AC47C39A7E610D00791FF87D]
HWidth=1
HHeight=455
FillColor=12639424
Point(doCreate)
}
Add(ChildPanel,14793498,105,21)
{
}
BEGIN_SDK
Add(EditMulti,6884947,21,21)
{
WorkCount=1
Width=153
Height=102
link(doWork1,16204598:doLoad,[(102,27)(102,83)])
}
Add(Panel,13811526,49,77)
{
Width=30
Height=457
Align=1
Color=12639424
}
Add(Bitmap,7051681,112,28)
{
Picture=[ZIPBAA3000078DAED9D318E1B391045DBB7D8C41B1B50A6C007D86883D97C823D828EA0601770A2434C64CC251610D089E5C89122011328D2395C336573CB245B228B9FB634FD071A40D6184F543559BF497E15FFF8EBBF8FC3CBCF7BF97D27BFBFCBEFE737C3F066F8EDE5F50FDFFE6E7FC6A7F1E263F867F03C7E267BBF1D4FC3E2340CF2383CFF75232F1E1E467D657CB8AB6848A6DDBBA7F1B45CED97F2A747F9E797A7F138DC8DDB95BCED6158E8BB15B34FF71B6DD697FB21654BA3F503E847BAD8F49A761FD78F96BD5B2F6E83DD33266DD7D23E84741AEEE4BA0636B40F363E5E373B8C293BFE71ED96CEADECA3FCCFEDAA8D1D8DFFE74E72BFD1CE3D3EACD0F1965EB95BAFBA5D4BF930C3DF586DD06844C314D4EE301CA3610AED27E59D84639E6CB26F9BAD892AE4F22B655BD1B162298F8BB76A35ED96042BBC6E3139AC1F77DB95B2D1731269F47129EC459F6BA9B7877DD81AF86E6C8E79B2C9BE2676B88F2D4FDE65EC30C396274779D27A1F6B75279AC6437547EFBCA5DD1A9992D9760D5B6EE94518AA260D35F10E991BAD691A96F219B14BD3D0F7101CF364933D2FB6CE18A275315CFE86EA8ED53461AB2474D0347DABFD5A12ECA2C39A927E0C05437547255842A1F200D562616B8BBBC5BB767190639E6CB26F8F9DDDAE43B0EDE2D773FEAEC75FDAE7D68CAAD3927255B8C4B633A7309D02EDCF075E0776B6DD37106FED27AA60E87ED2B37F339F904DF6B5B27D4E88CA75B6DA4DEEF275CD4A27440DDB3A213AF8D924F038DD69714214B25D4E88CA7E02D54B8E79B2E7C2766CA0FF62B6DB545096AB7CA682C23525632AE8B0AE694D0568DD71980A6AFA77ADA980639E6CB2C94619160AD86EC34299EEF8368E0AD86EC34219DB6758288EB75505A8A6F90C0B3573C05AC302C73CD964938D322C94E5EF9EBAE3332C94C5DB67582866DB35259CEEB80D0B65F7103EC3424D4CFAACE171CC934DF67976B8A18C46A17BF7356977484EEDEE824BEC96DDEE4BEC965DFA84AD80C04EDD050DDF498DD869BB716C68BC23768BBBC0B0ED6D8ED52E5CFF663E219BEC79B1D3722D6EDB42AEDDE98EB9CFB650C6F6D9168AD9C1B6D036DF997211D4DA160AD86EDB4209DB6B5B48D85905F3D91638E6C926FBDAD9D91A61383F4436DFF56143BD1669828DBC160DBA93C604E7B548D9BE020EC5D712E1B538336DA2D7826CB2E732DF1991351CA27405ADE170BE1463DBF72FD31292B81A0E29DB5A22A073A9D412D161EEDAECE59F921ED670209BECB9E80EB4CE426309E04A36AECE429A63717516B26C509D85EC5A18A8CE42CA06D559C8EA0EEB2C904DF6AF63472B488DB68589BDE854771CB6855C4C04AFC94E775CDCDBE813F1DEAF3751FD76876D618ABD1DF7CB4534DF91E79FFE1C3CD6822135376BAAB6ED6E601F24D22FB1549E95E0E678DB9B93E83404876D61C27F12756550FF663E219BECEB63A72E02A8AF207511E07C05591701C85730E68E81A83D1862BC70A645A48BFA4AC37C277511E07C05A98B00E72BC8BA08E82B209BEC19E98E7BFBBF4C7746E4D9105665D067435895E9703684D51DD0D9105995019D0D31A532A0B321A654866743904D36D9B5ECACAC396C0B13ED8E64CD675B385317D4C89ACFB670F6ACC7206B3EDBC2D96B1964CDDA16FE7DDBB27794CA9ACFB69065E764CD615B38DB4F2259ABB52D70CC934DF64DCEA5A09E854874D0674358D1419F0D11ADD8A1CF86B07329906721B38607F32C64D7F0706743A4A243CF02D964BF42B6752BA0BFE32E892FDC02CBFBD84D6E500D8731576606545320A459FD0CB85A0856D2537345739D85E8B3836A4FE8FA65E0E9F503C5DB06247443500D071BEF763304F309D97363078508B91CE72B08B7C6321C0F7247FC5D2A70BE8230D4FFDF2A81F90A4228021BE42B985ADF41D42B88765CA2594ACB7CE7BB42846CDDC15760834D5F01D964930DD1349CAF20AB6950CF82D534B467C16A1AD4B3906A1AC8B3907511E03C0BD91908D4B3904EC9E859209BECB9E80EA81642AA3BD05A0891EE406B2144BA03AD8510E98EFB788802DD894C05D0B914AE16C294EEB01602D964CF457770BE825477D0BE02AB3B685F41B48687F315A4E9343AC201B886F7A3AFA061EF28BB8687F61558DDA1AF80ECD7C38ECAFE43F7182D1BB4876EF7FEC30C04B4A72B98DDFA2E6A37EE1C04FD6EBE65A77BE85EB644F7B014F6A643BB5361E8E35998DA436F5E67134CB67F7BC0CFECAF125C84AC]
Point(doCreate)
}
Add(Image,16204598,112,77)
{
Width=30
Height=456
Color=12639424
ViewStyle=4
link(Bitmap,7051681:Bitmap,[])
}
END_SDK
Add(MultiStrPart,1701529,126,245)
{
link(onSplit,840461:doSplit,[])
}
Add(MultiStrPart,840461,175,245)
{
Char=":"
Count=3
link(onSplit,1354993:doCalc,[])
link(Str,1701529:Part1,[(181,236)(167,236)(167,292)(132,292)])
}
Add(MathParse,1354993,217,245)
{
DataCount=1
MathStr="(40 - %1)/50*455"
ResultType=0
link(onResult,6725227:doData,[])
link(X1,1701529:Part2,[(223,229)(160,229)(160,285)(139,285)])
}
Add(Img_Point,11338816,427,245)
{
X=954
Color=255
Point(Y)
Point(X)
link(onDraw,7228694:doCalc,[])
link(Bitmap,5692398:Var2,[])
link(Y,1354993:Result,[(440,233)(424,233)(424,283)(223,283)])
}
Add(MathParse,7228694,469,245)
{
MathStr="((%1*60 + %2) mod 120)=0"
link(onResult,15341018:doCompare,[])
link(X1,16052192:Var1,[(475,217)])
link(X2,1219252:Var1,[(482,228)])
}
Add(If_else,15341018,511,245)
{
Op2=Integer(1)
link(onTrue,12127298:doDraw,[])
}
Add(Img_Text,4000719,637,245)
{
X=905
Y=438
Font=[MS Sans Serif,10,0,16711680,1]
link(Bitmap,13381386:Var3,[(643,152)])
}
Add(Img_Line,12127298,553,245)
{
Point1=29754298
Point2=954
Color=32768
link(onDraw,3787286:doString,[])
link(Bitmap,13381386:Var2,[])
}
Add(FormatStr,3787286,595,245)
{
DataCount=3
Mask="%1:%2:%3"
link(onFString,4000719:doDraw,[])
link(Str1,840461:Part1,[(601,233)(605,233)(605,311)(181,311)])
link(Str2,16052192:Var2,[])
link(Str3,1219252:Var2,[])
}
Add(PaintBox,285478,455,105)
{
Left=30
Top=2
Width=955
Height=455
Color=12639424
}
Add(Img_Bmp,6985709,385,245)
{
X=954
link(onDraw,11338816:doDraw,[])
link(Bitmap,2975834:Var2,[])
link(SourceBitmap,14586978:Bitmap,[])
}
Add(Img_Bmp,2932146,343,245)
{
X=-1
Point(Transform)
link(onDraw,6985709:doDraw,[])
link(Bitmap,11731985:Var2,[])
}
Add(GetDataEx,15654163,455,147)
{
link(Data,285478:Bitmap,[])
}
Add(GetDataEx,2975834,385,147)
{
Angle=1
link(Data,5692398:Var1,[])
}
Add(GetDataEx,5692398,427,147)
{
Angle=1
link(Data,15654163:Var1,[])
}
Add(GetDataEx,13381386,553,147)
{
Angle=3
link(Data,15654163:Var3,[])
}
Add(DoData,6725227,259,245)
{
link(onEventData,11219636:doCopy,[])
}
Add(Img_Copy,11219636,301,245)
{
Width=955
Height=455
link(onCopy,2932146:doDraw,[])
link(Source,11731985:Var1,[(307,152)])
}
Add(GetDataEx,11731985,343,147)
{
Angle=1
link(Data,2975834:Var1,[])
}
Add(Hub,1998230,91,245)
{
link(onEvent1,1701529:doSplit,[])
link(onEvent2,285478:doRefresh,[(112,258)(112,111)])
}
Add(GetDataEx,1219252,609,223)
{
Angle=1
link(Data,840461:Part3,[(684,228)(684,289)(195,289)])
}
Add(GetDataEx,16052192,602,212)
{
Angle=1
link(Data,840461:Part2,[(692,217)(692,303)(689,303)(188,301)])
}
END_SDK
Add(Button,6700041,154,308)
{
Left=20
Top=95
Caption="On/Off"
link(onClick,10605474:doNext,[])
}
Add(Counter,10605474,203,308)
{
Max=1
Default=1
link(onNext,6705138:doEvent,[])
}
Add(IndexToChanel,6705138,245,308)
{
link(onEvent1,9508340:doEvent1,[(284,314)(284,300)])
link(onEvent2,2403626:doStop,[])
}
Add(Timer,2403626,329,308)
{
Interval=10
Enable=1
link(onTimer,2353023:doWork2,[])
}
Add(Hub,9508340,294,294)
{
link(onEvent1,2403626:doTimer,[(319,300)(319,314)])
link(onEvent2,2353023:doWork1,[])
}
Add(HubEx,12125055,476,301)
{
link(onEvent,3746522:doWork2,[])
}
карма: 9

0
Ответов: 1840
Рейтинг: 123
#18: 2021-07-26 20:52:40 ЛС | профиль | цитата
Славик!
Уважаю Всех!!! - и кто может и не может!
Труд башки никто не оценит - Но какое счастье когда тебя понимают!
карма: 5

0
Ответов: 1988
Рейтинг: 633
#19: 2021-07-26 21:27:10 ЛС | профиль | цитата
flint2, да шучу я и Леонид это прекрасно понимает (с чувством юмора у него точно все в порядке). Да и без злобы, прекрасно видно что выложенные Леонидом схемы старые наработки, возможно тогда еще и PaintBox-а не было. А Pavelу выложенная схема тоже пригодится, как минимум увидит что можно получить достаточное быстродействие, если правильно подойти к рисованию.
карма: 9

0
Ответов: 8695
Рейтинг: 806
#20: 2021-07-26 22:20:12 ЛС | профиль | цитата
sla8a, да я на PaintBox-е и не рисую, там не видно, что и как происходит
карма: 19

0
Ответов: 1840
Рейтинг: 123
#21: 2021-07-26 22:46:42 ЛС | профиль | цитата
Хорошие вы мужуки, да и дело с концом!
Я так, харахорюсь.
Пупсик заболела, после как съездила - меня не пустила!
Сын с невесткой влёжку - 39.
Но это не самое страшное!
Внуки заболели - 39 с гаком!!!
Но только Димка привился, в ВТБ заставили и на второй день, а остальные то не виноваты!!!
А меня, к несчастью, ни одна зараза не берёт.
Было. Давно. Геморрагическая лихорадка. 15 человек померли, даже врачи. Я остался - вроде притупилась совесть(не лечили - потому что не лечится).

Редактировалось 6 раз(а), последний 2021-07-26 23:20:46
карма: 5

0
Ответов: 1988
Рейтинг: 633
#22: 2021-07-27 11:55:28 ЛС | профиль | цитата
Леонид писал(а):
я на PaintBox-е и не рисую, там не видно, что и как происходит
Зато по загрузке процессора видно что рисует, аж потеет
карма: 9

0
Ответов: 8695
Рейтинг: 806
#23: 2021-07-27 13:14:08 ЛС | профиль | цитата
sla8a, это точно, гигагерцовые процессоры и такая же память развращают программистов, уже не задумываешься об экономии, зато и не нарвёшься на проблему 2000 года
карма: 19

0
Ответов: 194
Рейтинг: 27
#24: 2021-07-28 07:33:34 ЛС | профиль | цитата
Pavel, на сколько нужен именно ‘life’-график? Может быть все данные сохранять в базу или текстовый файл и потом просматривать «в спокойном режиме».

Редактировалось 1 раз(а), последний 2021-07-29 07:52:18
карма: 5

0
Ответов: 39
Рейтинг: 1
#25: 2021-07-28 10:16:51 ЛС | профиль | цитата
Gunta, График должен быть ‘life’ это критично. Так как на визуальном анализе графика, будет происходить моментальная, краткосрочная сделка ( Скальперская), и эта сделка будет происходить прям на этом графике чтоб ее контролировать.

Леонид писал(а):
Вы лучше выложите формат получаемых вами данных после парсинга, частоту получения данных, да нарисовали бы в Paint-е желаемый вид графика. А "рюшечки" дело десятое, можно украсить и потом


Вот два желаемых результата как пример.

1)
321.gif

2)
123.gif

Вот скриншот линии которая при изменении данных меняет свой цвет и толщину
Снимок.PNG


Вот пример данных исходя которых строится график.
Ось X строится по локальному Unix time +1 секунда и на него уже накладывается точка полученная с биржи привязанная к Unix time.
Осю Y Строится по данным цены с биржи.

Add(MainForm,2953706,259,266)
{
Width=780
Height=675
link(onCreate,13585400:doEnum,[])
}
Add(StrList,4076137,539,168)
{
Strings=#157:trade","E":1627323684919,"s":"BTCUSDT","t":970310967,"p":"39616.19000000","q":"0.00498500","b":6940921289,"a":6940921291,"T":1627323684919,"m":true,"M":true}|163:{"e":"trade","E":1627323684926,"s":"BTCUSDT","t":970310968,"p":"39616.19000000","q":"0.08191300","b":6940921289,"a":6940921293,"T":1627323684925,"m":true,"M":true}|164:{"e":"trade","E":1627323684953,"s":"BTCUSDT","t":970310969,"p":"39616.20000000","q":"0.00114100","b":6940921297,"a":6940921282,"T":1627323684952,"m":false,"M":true}|163:{"e":"trade","E":1627323684972,"s":"BTCUSDT","t":970310970,"p":"39616.19000000","q":"0.00091500","b":6940921289,"a":6940921300,"T":1627323684971,"m":true,"M":true}|163:{"e":"trade","E":1627323684973,"s":"BTCUSDT","t":970310971,"p":"39616.19000000","q":"0.06937900","b":6940921289,"a":6940921301,"T":1627323684972,"m":true,"M":true}|163:{"e":"trade","E":1627323685014,"s":"BTCUSDT","t":970310972,"p":"39616.19000000","q":"0.01868900","b":6940921289,"a":6940921309,"T":1627323685013,"m":true,"M":true}|163:{"e":"trade","E":1627323685069,"s":"BTCUSDT","t":970310973,"p":"39613.09000000","q":"0.00648000","b":6940921294,"a":6940921316,"T":1627323685069,"m":true,"M":true}|163:{"e":"trade","E":1627323685081,"s":"BTCUSDT","t":970310974,"p":"39613.09000000","q":"0.02550000","b":6940921294,"a":6940921321,"T":1627323685080,"m":true,"M":true}|164:{"e":"trade","E":1627323685267,"s":"BTCUSDT","t":970310975,"p":"39613.10000000","q":"0.00129700","b":6940921333,"a":6940921317,"T":1627323685266,"m":false,"M":true}|163:{"e":"trade","E":1627323685372,"s":"BTCUSDT","t":970310976,"p":"39613.09000000","q":"0.00781400","b":6940921294,"a":6940921337,"T":1627323685372,"m":true,"M":true}|164:{"e":"trade","E":1627323685439,"s":"BTCUSDT","t":970310977,"p":"39610.83000000","q":"0.00126400","b":6940921348,"a":6940921345,"T":1627323685439,"m":false,"M":true}|163:{"e":"trade","E":1627323685450,"s":"BTCUSDT","t":970310978,"p":"39610.82000000","q":"0.07990300","b":6940921343,"a":6940921352,"T":1627323685450,"m":true,"M":true}|163:{"e":"trade","E":1627323685450,"s":"BTCUSDT","t":970310979,"p":"39610.82000000","q":"0.22865300","b":6940921344,"a":6940921352,"T":1627323685450,"m":true,"M":true}|164:{"e":"trade","E":1627323685497,"s":"BTCUSDT","t":970310980,"p":"39610.83000000","q":"0.00241300","b":6940921357,"a":6940921345,"T":1627323685496,"m":false,"M":true}|163:{"e":"trade","E":1627323685544,"s":"BTCUSDT","t":970310981,"p":"39610.82000000","q":"0.00764900","b":6940921344,"a":6940921362,"T":1627323685543,"m":true,"M":true}|164:{"e":"trade","E":1627323685617,"s":"BTCUSDT","t":970310982,"p":"39610.83000000","q":"0.00814000","b":6940921366,"a":6940921345,"T":1627323685616,"m":false,"M":true}|164:{"e":"trade","E":1627323685716,"s":"BTCUSDT","t":970310983,"p":"39610.83000000","q":"0.00041500","b":6940921375,"a":6940921345,"T":1627323685715,"m":false,"M":true}|164:{"e":"trade","E":1627323685755,"s":"BTCUSDT","t":970310984,"p":"39610.83000000","q":"0.02000000","b":6940921380,"a":6940921345,"T":1627323685754,"m":false,"M":true}|163:{"e":"trade","E":1627323685765,"s":"BTCUSDT","t":970310985,"p":"39610.82000000","q":"0.00112500","b":6940921344,"a":6940921394,"T":1627323685764,"m":true,"M":true}|164:{"e":"trade","E":1627323685807,"s":"BTCUSDT","t":970310986,"p":"39610.83000000","q":"0.18920500","b":6940921400,"a":6940921345,"T":1627323685806,"m":false,"M":true}|163:{"e":"trade","E":1627323685858,"s":"BTCUSDT","t":970310987,"p":"39610.82000000","q":"0.00055500","b":6940921344,"a":6940921412,"T":1627323685857,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310988,"p":"39610.82000000","q":"0.00334800","b":6940921344,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310989,"p":"39610.82000000","q":"0.06000000","b":6940921353,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310990,"p":"39610.82000000","q":"0.15000000","b":6940921369,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310991,"p":"39610.82000000","q":"0.35000000","b":6940921370,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310992,"p":"39610.82000000","q":"0.50000000","b":6940921371,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310993,"p":"39610.82000000","q":"0.00227100","b":6940921397,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310994,"p":"39610.81000000","q":"0.27517000","b":6940921258,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310995,"p":"39610.80000000","q":"0.12149600","b":6940921100,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310996,"p":"39610.79000000","q":"0.01750600","b":6940921133,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685913,"s":"BTCUSDT","t":970310997,"p":"39610.79000000","q":"0.00378600","b":6940921398,"a":6940921415,"T":1627323685912,"m":true,"M":true}|163:{"e":"trade","E":1627323685927,"s":"BTCUSDT","t":970310998,"p":"39607.03000000","q":"0.00287900","b":6940921390,"a":6940921420,"T":1627323685926,"m":true,"M":true}|164:{"e":"trade","E":1627323685968,"s":"BTCUSDT","t":970310999,"p":"39607.42000000","q":"0.01379400","b":6940921434,"a":6940921428,"T":1627323685967,"m":false,"M":true}|164:{"e":"trade","E":1627323686001,"s":"BTCUSDT","t":970311000,"p":"39607.42000000","q":"0.21760800","b":6940921442,"a":6940921428,"T":1627323686000,"m":false,"M":true}|164:{"e":"trade","E":1627323686075,"s":"BTCUSDT","t":970311001,"p":"39610.79000000","q":"0.33333300","b":6940921466,"a":6940921415,"T":1627323686074,"m":false,"M":true}|164:{"e":"trade","E":1627323686077,"s":"BTCUSDT","t":970311002,"p":"39610.79000000","q":"0.33333300","b":6940921467,"a":6940921415,"T":1627323686077,"m":false,"M":true}|164:{"e":"trade","E":1627323686089,"s":"BTCUSDT","t":970311003,"p":"39610.79000000","q":"0.01180600","b":6940921471,"a":6940921415,"T":1627323686089,"m":false,"M":true}|164:{"e":"trade","E":1627323686153,"s":"BTCUSDT","t":970311004,"p":"39615.64000000","q":"0.00224400","b":6940921498,"a":6940921488,"T":1627323686153,"m":false,"M":true}|164:{"e":"trade","E":1627323686222,"s":"BTCUSDT","t":970311005,"p":"39615.64000000","q":"0.00237600","b":6940921508,"a":6940921501,"T":1627323686221,"m":false,"M":true}|163:{"e":"trade","E":1627323686230,"s":"BTCUSDT","t":970311006,"p":"39615.63000000","q":"0.01049700","b":6940921504,"a":6940921510,"T":1627323686229,"m":true,"M":true}|163:{"e":"trade","E":1627323686266,"s":"BTCUSDT","t":970311007,"p":"39615.70000000","q":"0.01990900","b":6940921520,"a":6940921525,"T":1627323686265,"m":true,"M":true}|163:{"e":"trade","E":1627323686266,"s":"BTCUSDT","t":970311008,"p":"39615.63000000","q":"0.00043200","b":6940921505,"a":6940921525,"T":1627323686265,"m":true,"M":true}|163:{"e":"trade","E":1627323686275,"s":"BTCUSDT","t":970311009,"p":"39615.63000000","q":"0.00249000","b":6940921514,"a":6940921532,"T":1627323686275,"m":true,"M":true}|163:{"e":"trade","E":1627323686300,"s":"BTCUSDT","t":970311010,"p":"39615.63000000","q":"0.01011200","b":6940921514,"a":6940921536,"T":1627323686299,"m":true,"M":true}|164:{"e":"trade","E":1627323686432,"s":"BTCUSDT","t":970311011,"p":"39613.11000000","q":"0.02534800","b":6940921563,"a":6940921538,"T":1627323686431,"m":false,"M":true}|163:{"e":"trade","E":1627323686448,"s":"BTCUSDT","t":970311012,"p":"39613.10000000","q":"0.00025500","b":6940921534,"a":6940921565,"T":1627323686447,"m":true,"M":true}|163:{"e":"trade","E":1627323686448,"s":"BTCUSDT","t":970311013,"p":"39612.72000000","q":"0.00025700","b":6940921559,"a":6940921565,"T":1627323686447,"m":true,"M":true}|164:{"e":"trade","E":1627323686570,"s":"BTCUSDT","t":970311014,"p":"39613.11000000","q":"0.00135800","b":6940921584,"a":6940921538,"T":1627323686569,"m":false,"M":true}|164:{"e":"trade","E":1627323686612,"s":"BTCUSDT","t":970311015,"p":"39613.11000000","q":"0.00049800","b":6940921586,"a":6940921538,"T":1627323686612,"m":false,"M":true}|164:{"e":"trade","E":1627323686715,"s":"BTCUSDT","t":970311016,"p":"39613.11000000","q":"0.00049800","b":6940921595,"a":6940921538,"T":1627323686714,"m":false,"M":true}|163:{"e":"trade","E":1627323686784,"s":"BTCUSDT","t":970311017,"p":"39613.10000000","q":"0.00027700","b":6940921573,"a":6940921610,"T":1627323686784,"m":true,"M":true}|164:{"e":"trade","E":1627323686858,"s":"BTCUSDT","t":970311018,"p":"39613.11000000","q":"0.21804400","b":6940921625,"a":6940921538,"T":1627323686857,"m":false,"M":true}|164:{"e":"trade","E":1627323686861,"s":"BTCUSDT","t":970311019,"p":"39613.11000000","q":"0.00077000","b":6940921626,"a":6940921538,"T":1627323686861,"m":false,"M":true}|
}
Add(ArrayEnum,13585400,553,280)
{
link(onItem,9089905:doEvent3,[])
link(Array,4076137:Array,[])
}
Add(RichEdit,1147971,1015,266)
{
Left=5
Top=270
Width=735
Height=340
}
Add(Hub,9089905,658,266)
{
InCount=3
OutCount=13
link(onEvent1,1147971:doAdd,[])
link(onEvent2,8080983:doWork1,[(767,279)(767,314)])
link(onEvent3,12138233:doWork1,[(758,286)(758,356)])
link(onEvent5,8054774:doWork1,[(751,300)(751,398)])
link(onEvent6,2741084:doWork1,[(743,307)(743,440)])
link(onEvent7,7879158:doWork1,[(734,314)(734,482)])
link(onEvent8,6702111:doWork1,[(726,321)(726,524)])
link(onEvent9,3257741:doWork1,[(718,328)(718,566)])
link(onEvent10,14891572:doWork1,[(711,335)(711,608)])
}
Add(Edit,12879061,951,308)
{
Left=5
Top=105
Width=565
Text="Unix : %1 Time server : %2"
}
Add(MultiElement,8080983,889,308)
{
link(onEvent1,12879061:doText,[])
}
BEGIN_SDK
Add(EditMulti,11302727,21,21)
{
EventCount=2
WorkCount=1
Width=944
Height=564
link(doWork1,7422443:doSearch,[(157,27)(157,188)])
}
Add(BlockFind,7422443,294,182)
{
IncludeBlock=1
StartBlock=""E":"
EndBlock=","s""
link(onSearch,1379986:doEvent1,[])
}
Add(DateConvertor,1889570,448,182)
{
Mode=16
Format="HH:mm:ss"
link(onResult,1684147:doData,[])
}
Add(Math,5970902,399,182)
{
OpType=3
Op2=1000
ResultType=0
link(onResult,1889570:doConvert,[])
}
Add(Hub,1379986,350,182)
{
OutCount=3
link(onEvent1,11302727:onEvent2,[(664,188)(664,34)])
link(onEvent2,5970902:doOperation,[(382,195)(382,188)])
link(onEvent3,12743231:doString,[(430,202)(430,251)])
}
Add(FormatStr,12743231,497,245)
{
Mask="Unix : %1 Time server : %2"
link(onFString,11302727:onEvent1,[(747,251)(747,27)])
link(Str1,1684147:GetData,[])
}
Add(EventFromData,1684147,497,182)
{
}
END_SDK
Add(Edit,3475109,951,350)
{
Left=5
Top=125
Width=565
Text="Пара : %1 %2"
}
Add(MultiElement,12138233,889,350)
{
link(onEvent1,3475109:doText,[])
}
BEGIN_SDK
Add(EditMulti,10630780,21,21)
{
EventCount=2
WorkCount=1
Width=706
link(doWork1,14658344:doSearch,[(123,27)(123,83)])
}
Add(BlockFind,14658344,224,77)
{
IncludeBlock=1
StartBlock=""s":""
EndBlock="","t":"
link(onSearch,8682541:doEvent1,[])
}
Add(FormatStr,13927428,315,49)
{
Mask="Пара : %1 %2"
link(onFString,10630780:onEvent1,[(523,55)(523,27)])
}
Add(Hub,8682541,266,77)
{
link(onEvent1,10630780:onEvent2,[(504,83)(504,34)])
link(onEvent2,13927428:doString,[(298,90)(298,55)])
}
END_SDK
Add(MultiElement,2741084,889,434)
{
link(onEvent1,1192461:doText,[])
}
BEGIN_SDK
Add(EditMulti,12393502,21,21)
{
EventCount=2
WorkCount=1
link(doWork1,1542632:doSearch,[(49,27)(49,104)])
}
Add(BlockFind,1542632,77,98)
{
IncludeBlock=1
StartBlock=""p":""
EndBlock="","q":""
link(onSearch,13676925:doEvent1,[])
}
Add(FormatStr,4748933,217,35)
{
Mask="Цена : %1"
link(onFString,12393502:onEvent1,[(288,41)(288,27)])
}
Add(Hub,13676925,154,98)
{
link(onEvent1,12393502:onEvent2,[(244,104)(244,34)])
link(onEvent2,4748933:doString,[(192,111)(192,41)])
}
END_SDK
Add(Edit,8897171,951,392)
{
Left=5
Top=145
Width=565
Text="Идентификатор ID"
}
Add(MultiElement,8054774,889,392)
{
link(onEvent1,8897171:doText,[])
}
BEGIN_SDK
Add(EditMulti,9585953,21,21)
{
EventCount=2
WorkCount=1
Width=881
link(doWork1,424614:doSearch,[(105,27)(105,125)])
}
Add(BlockFind,424614,189,119)
{
IncludeBlock=1
StartBlock="","t":"
EndBlock=","p":"
link(onSearch,13828745:doEvent1,[])
}
Add(FormatStr,1319619,308,63)
{
Mask="Идентификатор ID : %1"
link(onFString,9585953:onEvent1,[(348,69)(348,27)])
}
Add(Hub,13828745,238,119)
{
link(onEvent1,9585953:onEvent2,[(577,125)(577,34)])
link(onEvent2,1319619:doString,[(280,132)(280,69)])
}
END_SDK
Add(Edit,1192461,951,434)
{
Left=5
Top=165
Width=565
Text="Цена : %1"
}
Add(MultiElement,7879158,889,476)
{
link(onEvent1,10338547:doText,[])
}
BEGIN_SDK
Add(EditMulti,9791462,21,21)
{
EventCount=2
WorkCount=1
link(doWork1,15710817:doSearch,[(49,27)(49,104)])
}
Add(BlockFind,15710817,77,98)
{
IncludeBlock=1
StartBlock="","q":""
EndBlock="","b":"
link(onSearch,16578545:doEvent1,[])
}
Add(FormatStr,1686219,210,35)
{
Mask="Объем : %1"
link(onFString,9791462:onEvent1,[(288,41)(288,27)])
}
Add(Hub,16578545,161,98)
{
link(onEvent1,9791462:onEvent2,[(248,104)(248,34)])
link(onEvent2,1686219:doString,[(193,111)(193,41)])
}
END_SDK
Add(Edit,10338547,951,476)
{
Left=5
Top=185
Width=565
Text="Объем : %1"
}
Add(MultiElement,6702111,889,518)
{
link(onEvent1,10284561:doText,[])
}
BEGIN_SDK
Add(EditMulti,10499263,21,21)
{
EventCount=2
WorkCount=1
link(doWork1,10334118:doSearch,[(49,27)(49,104)])
}
Add(BlockFind,10334118,77,98)
{
IncludeBlock=1
StartBlock=","T":"
EndBlock=","m":"
link(onSearch,13994195:doEvent1,[])
}
Add(FormatStr,7302733,203,35)
{
Mask="Время сделки : %1"
link(onFString,10499263:onEvent1,[(288,41)(288,27)])
}
Add(Hub,13994195,147,98)
{
link(onEvent1,10499263:onEvent2,[(241,104)(241,34)])
link(onEvent2,7302733:doString,[(182,111)(182,41)])
}
END_SDK
Add(Edit,7499841,951,560)
{
Left=5
Top=205
Width=565
Text="Идентификатор заказа покупателя buy : %1"
}
Add(MultiElement,3257741,889,560)
{
link(onEvent1,7499841:doText,[])
}
BEGIN_SDK
Add(EditMulti,12164554,21,21)
{
EventCount=2
WorkCount=1
link(doWork1,3080741:doSearch,[(49,27)(49,104)])
}
Add(BlockFind,3080741,77,98)
{
IncludeBlock=1
StartBlock="","b":"
EndBlock=","a":"
link(onSearch,14316220:doEvent1,[])
}
Add(FormatStr,10126641,203,28)
{
Mask="Идентификатор заказа покупателя buy : %1"
link(onFString,12164554:onEvent1,[(288,34)(288,27)])
}
Add(Hub,14316220,161,98)
{
link(onEvent1,12164554:onEvent2,[(248,104)(248,34)])
link(onEvent2,10126641:doString,[(189,111)(189,34)])
}
END_SDK
Add(Edit,5105345,951,602)
{
Left=5
Top=245
Width=565
Text="Идентификатор заказа продавца ask : %1t"
}
Add(MultiElement,14891572,889,602)
{
link(onEvent1,5105345:doText,[])
}
BEGIN_SDK
Add(EditMulti,991720,21,21)
{
EventCount=2
WorkCount=1
link(doWork1,16182850:doSearch,[(49,27)(49,104)])
}
Add(BlockFind,16182850,77,98)
{
IncludeBlock=1
StartBlock=","a":"
EndBlock=","T":"
link(onSearch,16411972:doEvent1,[])
}
Add(FormatStr,7468902,203,21)
{
Mask="Идентификатор заказа продавца ask : %1"
link(onFString,991720:onEvent1,[])
}
Add(Hub,16411972,154,98)
{
link(onEvent1,991720:onEvent2,[(244,104)(244,34)])
link(onEvent2,7468902:doString,[(186,111)(186,27)])
}
END_SDK
Add(Edit,10284561,951,518)
{
Left=5
Top=225
Width=565
Text="Время сделки : %1"
}
Add(InfoTip,8631987,483,119)
{
Info=#37:данных может быть 65 строк в секунду.|
Width=155
Height=137
}




Вот что имею на данный момент
3333.gif

Зеленый цвет всегда по верх красного, И при масштабе графика роликом мышки графит смещается по всем осям.

Редактировалось 3 раз(а), последний 2021-07-28 10:46:08
карма: 0

0
Ответов: 194
Рейтинг: 27
#26: 2021-07-29 07:51:06 ЛС | профиль | цитата
Pavel, Ответ биржи — это простой json и парсить его можно значительно проще.
https://forum.hiasm.com/getfile/39271
Также ты неправильно применяешь компонент EventFromData, замени его на Memory.
И что-то я сомневаюсь, что задуманное тобой можно исполнить на компоненте Plotter.
В сети есть несколько специализированных библиотек, которые можно попытаться прикрутить к Hiasm но они в основном платные. Либо рисовать самому.
карма: 5

1
файлы: 1ws-json-pars-test.zip [792.2KB] [47]
Голосовали:Pavel
Ответов: 39
Рейтинг: 1
#27: 2021-07-29 14:12:11 ЛС | профиль | цитата
Gunta,

Твоя схема не заработала, ( данные с биржи не шли), поправил и все отлично!
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 Начинает нехило так грузить систему.

Редактировалось 3 раз(а), последний 2021-07-29 15:54:13
карма: 0

0
Ответов: 194
Рейтинг: 27
#28: 2021-07-29 14:27:13 ЛС | профиль | цитата
Gunta писал(а):
Твоя схема не заработала,

В архиве лежит схема и websocat_win32.exe(должна лежать в папке вместе с программой). ссылка на github с исходниками в схеме. Возможно, тебе подойдёт 64-версия(можешь скачать её оттуда).

Редактировалось 1 раз(а), последний 2021-07-29 18:29:53
карма: 5

0
Ответов: 39
Рейтинг: 1
#29: 2021-07-29 17:42:29 ЛС | профиль | цитата
Gunta,Работает, прошу прошение за вои кривые ручки.
Шустрый однако websocat_win32.exe Доходило до 786 строк данных в секунду ( при получении данных сразу по несколько пар монет без отрисовки данных на графике. )

Но вот стоило подключить компонент Plotter, как все менялось в худшую сторону.

Вот скрин работы двух одинаковых сем одна с подключённым компонентом Plotter другая без, две эти схемы проработали ровно 5 мин. ( на скрине видно, что Plotter явно не поспевает за полученными данными )

Обратите внимание на время в схемах и на время пк.


Снимок.PNG
[img][/img]
Вот схемы которые я сравнивал.

1)
Add(MainForm,7714850,42,98){
Width=1062
Height=542
Caption="trade"
Point(onClose)
link(onCreate,10289546:doEvent1,[])
link(onClose,133730:doConsoleTerminate,[(81,125)(81,132)])
}
Add(DateConvertor,15786644,819,119)
{
Mode=16
Point(Result)
link(onResult,7728186:doText,[])
}
Add(Label,7728186,868,119)
{
Width=1046
Height=35
Align=2
Font=[Lucida Console,20,0,0,204]
Caption=""
AutoSize=1
Alignment=2
}
Add(BlockFind,2689203,322,112)
{
IncludeBlock=1
StartBlock="{"
EndBlock="}"
link(onSearch,15154005:doEvent1,[(373,118)(373,125)])
}
Add(Math,2921107,714,119)
{
OpType=3
Op2=1000
link(onResult,12878153:doOperation,[])
}
Add(Case,1283714,714,168)
{
link(onNextCase,9339927:doCompare,[])
}
Add(WinExec,133730,140,105)
{
Param="wss://stream.binance.com:9443/stream?streams=btcusdt@trade/xrpusdt@trade/ethusdt@trade/busdusdt@trade/axsusdt@trade/aliceusdt@trade/bnbusdt@trade/dotusdt@trade/dogeusdt@trade/adausdt@trade/tlmusdt@trade/runeusdt@trade/lunausdt@trade/usdcusdt@trade/maticusdt@trade"
FileName="websocat_win32.exe"
Mode=0
Point(doConsoleExec)
Point(doConsoleTerminate)
Point(onConsoleResult)
Point(doConsoleInput)
Point(onConsoleError)
Point(onConsoleTerminate)
link(onConsoleResult,8287468:doEvent1,[])
}
Add(MultiStrData,14740655,588,119)
{
Char=","
From=1
Count=6
link(onPart1,8507035:doSplit,[])
}
Add(StrPart,8507035,665,119)
{
Char=":"
link(onSplit,2921107:doOperation,[])
}
Add(StrPart,9913632,665,168)
{
Char=":"
link(onSplit,1283714:doCase,[])
}
Add(Plotter,4825959,539,42)
{
Top=35
Width=1046
Height=338
Align=5
Name="Plot"
LeftMargin=50
MouseControl=1
}
Add(If_else,9339927,763,168)
{
Type=4
Op2=Integer(1)
link(onTrue,5815444:doEvent1,[])
}
Add(Hub,7308410,546,119)
{
OutCount=4
link(onEvent1,14740655:doSplit,[])
link(onEvent2,8339777:doEnum,[(612,132)(612,377)])
}
Add(Str_Enum,8339777,665,371)
{
Delimiter=","
link(onEnum,3396544:doOperation,[])
}
Add(MST_RowAction,3397609,868,357)
{
Action=2
MSTControl="asd"
Point(Index)
}
Add(MT_String,2667156,763,357)
{
Delimeter=":"
link(onResult,10979704:doAdd,[])
link(Str1,8339777:Part,[(769,348)(755,348)(755,418)(678,418)])
}
Add(Hub,10289546,98,112)
{
link(onEvent1,7144214:doFor,[(123,118)(123,62)])
link(onEvent2,133730:doConsoleExec,[])
}
Add(MST_RowAction,1436905,189,56)
{
MSTControl="asd"
}
Add(For,7144214,140,56)
{
End=10
link(onEvent,1436905:doRowAction,[])
}
Add(MT_Add,10979704,819,357)
{
InputMT=1
link(onAdd,3397609:doRowAction,[])
link(Data,3396544:Result,[(825,348)(811,348)(811,411)(720,411)])
}
Add(Math,3396544,714,371)
{
OpType=1
Op2=1
link(onResult,2667156:doMTString,[])
link(Op1,8339777:NumSubStr,[(720,362)(706,362)(706,411)(671,411)])
}
Add(Replace,5437590,224,112)
{
SubStr="""
link(onReplace,13454937:doSearch,[])
}
Add(BlockFind,13454937,273,112)
{
StartBlock="{e:trade"
EndBlock="true}"
link(onSearch,2689203:doSearch,[])
}
Add(Math,12878153,763,119)
{
Op2=10800
link(onResult,15786644:doConvert,[])
}
Add(PlotLines,15557708,868,168)
{
Grapher="Plot"
Color=16711680
Step=1
Name="base"
}
Add(PlotHistogram,9391493,763,287)
{
Grapher="Plot2"
Color=16776960
Step=1
BgColor=16776960
Offset=1
Axis="X0"
}
Add(Plotter,7412765,588,42)
{
Top=373
Width=1046
Height=130
Align=4
Name="Plot2"
LeftMargin=50
MouseControl=1
}
Add(Case,4763561,714,287)
{
link(onNextCase,9391493:doAdd,[])
}
Add(StrPart,12293705,665,287)
{
Char=":"
link(onSplit,4763561:doCase,[])
}
Add(MTStrTbl,116350,693,42)
{
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,868,287)
{
Grapher="Plot2"
Name="X0"
Color=16711680
Style=1
}
Add(LinkTip,9547046,49,259)
{
Link="https://github.com/vi/websocat"
Font=[MS Sans Serif,8,0,16711680,1]
}
Add(Hub,5815444,819,168)
{
link(onEvent1,15557708:doAdd,[])
link(onEvent2,15485904:doOperation,[(844,181)(844,223)(655,223)(655,237)])
}
Add(Math,15485904,665,231)
{
OpType=2
Op2=100
link(onResult,13648928:doCalcDelta,[])
}
Add(SampleDelta,13648928,714,231)
{
link(onCalcDelta,6805806:doAdd,[])
}
Add(Plotter,3246690,644,42)
{
Top=373
Width=1046
Height=130
Align=4
Name="Plot3"
LeftMargin=50
MouseControl=1
}
Add(PlotHistogram,6805806,763,231)
{
Grapher="Plot3"
Color=16711680
Step=1
BgColor=16711680
Offset=1
Axis="X0"
}
Add(PlotAxis,10952898,868,231)
{
Grapher="Plot3"
Name="X1"
Color=16711680
Style=1
}
Add(Memory,6805360,672,462)
{
link(onData,15578308:doValue,[])
}
Add(MathParse,15797740,665,525)
{
MathStr="1 + %2"
link(onResult,6805360:doValue,[(728,531)(728,499)(660,499)(660,468)])
link(X2,6805360:Value,[])
}
Add(Timer,13915431,511,581)
{
link(onTimer,8736944:doEvent1,[])
}
Add(Edit,1781743,784,581)
{
Left=115
Top=5
link(Str,5608187:Var2,[])
}
Add(Hub,8736944,609,581)
{
OutCount=4
link(onEvent1,1781743:doText,[])
link(onEvent3,290290:doCompare,[(665,601)(665,643)])
link(onEvent4,6805360:doClear,[(647,608)(647,475)])
}
Add(If_else,290290,707,637)
{
Type=2
link(onFalse,5642669:doValue,[(751,650)(751,622)(695,622)(695,594)])
link(Op1,5642669:Value,[])
link(Op2,5608187:Var1,[(720,558)])
}
Add(GetDataEx,5608187,784,553)
{
link(Data,8834749:Var2,[])
}
Add(Memory,5642669,707,588)
{
Point(Data)
link(onData,1640941:doText,[])
link(Data,8834749:Var1,[(713,516)])
}
Add(GetDataEx,8834749,784,511)
{
link(Data,15578308:Value,[])
}
Add(Edit,1640941,853,588)
{
Left=215
Top=5
}
Add(Hub,15154005,392,119)
{
OutCount=3
link(onEvent1,7308410:doEvent1,[])
link(onEvent3,15797740:doCalc,[(536,139)(536,531)])
}
Add(Label,2961824,398,49)
{
Left=180
Top=5
Width=35
Height=20
Font=[MS Sans Serif,10,1,0,1]
Caption="MAX"
}
Add(Label,8719720,343,56)
{
Left=80
Top=5
Width=31
Height=20
Font=[MS Sans Serif,10,1,0,1]
Caption="Sec"
}
Add(Hub,8287468,182,112)
{
link(onEvent1,5437590:doReplace,[])
}
Add(Memory,15578308,784,462)
{
}




2)
Add(MainForm,7714850,42,98)
{
Width=1062
Height=542
Caption="trade"
Point(onClose)
link(onCreate,10289546:doEvent1,[])
link(onClose,133730:doConsoleTerminate,[(81,125)(81,132)])
}
Add(DateConvertor,15786644,819,119)
{
Mode=16
Point(Result)
link(onResult,7728186:doText,[])
}
Add(Label,7728186,868,119)
{
Width=1046
Height=35
Align=2
Font=[Lucida Console,20,0,0,204]
Caption=""
AutoSize=1
Alignment=2
}
Add(BlockFind,2689203,287,119)
{
IncludeBlock=1
StartBlock="{"
EndBlock="}"
link(onSearch,15154005:doEvent1,[])
}
Add(Math,2921107,714,119)
{
OpType=3
Op2=1000
link(onResult,12878153:doOperation,[])
}
Add(Case,1283714,714,168)
{
link(onNextCase,9339927:doCompare,[])
}
Add(WinExec,133730,140,105)
{
Param="wss://stream.binance.com:9443/stream?streams=btcusdt@trade/xrpusdt@trade/ethusdt@trade/busdusdt@trade/axsusdt@trade/aliceusdt@trade/bnbusdt@trade/dotusdt@trade/dogeusdt@trade/adausdt@trade/tlmusdt@trade/runeusdt@trade/lunausdt@trade/usdcusdt@trade/maticusdt@trade"
FileName="websocat_win32.exe"
Mode=0
Point(doConsoleExec)
Point(doConsoleTerminate)
Point(onConsoleResult)
Point(doConsoleInput)
Point(onConsoleError)
Point(onConsoleTerminate)
link(onConsoleResult,5437590:doReplace,[(180,118)(180,125)])
}
Add(MultiStrData,14740655,588,119)
{
Char=","
From=1
Count=6
link(onPart1,8507035:doSplit,[])
link(onPart4,9913632:doSplit,[(655,146)(655,174)])
link(onPart5,12293705:doSplit,[(648,153)(648,293)])
}
Add(StrPart,8507035,665,119)
{
Char=":"
link(onSplit,2921107:doOperation,[])
}
Add(StrPart,9913632,665,168)
{
Char=":"
link(onSplit,1283714:doCase,[])
}
Add(Plotter,4825959,539,42)
{
Top=35
Width=1046
Height=208
Align=5
Name="Plot"
LeftMargin=50
MouseControl=1
}
Add(If_else,9339927,763,168)
{
Type=4
Op2=Integer(1)
link(onTrue,5815444:doEvent1,[])
}
Add(Hub,7308410,546,119)
{
OutCount=4
link(onEvent1,14740655:doSplit,[])
link(onEvent2,8339777:doEnum,[(612,132)(612,377)])
link(onEvent3,15797740:doCalc,[(612,139)(612,531)])
}
Add(Str_Enum,8339777,665,371)
{
Delimiter=","
link(onEnum,3396544:doOperation,[])
}
Add(MST_RowAction,3397609,868,357)
{
Action=2
MSTControl="asd"
Point(Index)
}
Add(MT_String,2667156,763,357)
{
Delimeter=":"
link(onResult,10979704:doAdd,[])
link(Str1,8339777:Part,[(769,348)(755,348)(755,418)(678,418)])
}
Add(Hub,10289546,98,112)
{
link(onEvent1,7144214:doFor,[(123,118)(123,62)])
link(onEvent2,133730:doConsoleExec,[])
}
Add(MST_RowAction,1436905,189,56)
{
MSTControl="asd"
}
Add(For,7144214,140,56)
{
End=10
link(onEvent,1436905:doRowAction,[])
}
Add(MT_Add,10979704,819,357)
{
InputMT=1
link(onAdd,3397609:doRowAction,[])
link(Data,3396544:Result,[(825,348)(811,348)(811,411)(720,411)])
}
Add(Math,3396544,714,371)
{
OpType=1
Op2=1
link(onResult,2667156:doMTString,[])
link(Op1,8339777:NumSubStr,[(720,362)(706,362)(706,411)(671,411)])
}
Add(Replace,5437590,189,119)
{
SubStr="""
link(onReplace,13454937:doSearch,[])
}
Add(BlockFind,13454937,238,119)
{
StartBlock="{e:trade"
EndBlock="true}"
link(onSearch,2689203:doSearch,[])
}
Add(Math,12878153,763,119)
{
Op2=10800
link(onResult,15786644:doConvert,[])
}
Add(PlotLines,15557708,868,168)
{
Grapher="Plot"
Color=16711680
Step=1
Name="base"
}
Add(PlotHistogram,9391493,763,287)
{
Grapher="Plot2"
Color=16776960
Step=1
BgColor=16776960
Offset=1
Axis="X0"
}
Add(Plotter,7412765,588,42)
{
Top=373
Width=1046
Height=130
Align=4
Name="Plot2"
LeftMargin=50
MouseControl=1
}
Add(Case,4763561,714,287)
{
link(onNextCase,9391493:doAdd,[])
}
Add(StrPart,12293705,665,287)
{
Char=":"
link(onSplit,4763561:doCase,[])
}
Add(MTStrTbl,116350,693,42)
{
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,868,287)
{
Grapher="Plot2"
Name="X0"
Color=16711680
Style=1
}
Add(LinkTip,9547046,49,259)
{
Link="https://github.com/vi/websocat"
Font=[MS Sans Serif,8,0,16711680,1]
}
Add(Hub,5815444,819,168)
{
link(onEvent1,15557708:doAdd,[])
link(onEvent2,15485904:doOperation,[(844,181)(844,223)(655,223)(655,237)])
}
Add(Math,15485904,665,231)
{
OpType=2
Op2=100
link(onResult,13648928:doCalcDelta,[])
}
Add(SampleDelta,13648928,714,231)
{
link(onCalcDelta,6805806:doAdd,[])
}
Add(Plotter,3246690,644,42)
{
Top=373
Width=1046
Height=130
Align=4
Name="Plot3"
LeftMargin=50
MouseControl=1
}
Add(PlotHistogram,6805806,763,231)
{
Grapher="Plot3"
Color=16711680
Step=1
BgColor=16711680
Offset=1
Axis="X0"
}
Add(PlotAxis,10952898,868,231)
{
Grapher="Plot3"
Name="X1"
Color=16711680
Style=1
}
Add(WinExec,8475440,98,322)
{
Param="wss://stream.binance.com:9443/stream?streams=btcusdt@trade"
FileName="websocat_win32.exe"
Mode=0
Point(doConsoleExec)
Point(doConsoleTerminate)
Point(onConsoleResult)
Point(doConsoleInput)
Point(onConsoleError)
Point(onConsoleTerminate)
}
Add(Memory,6805360,672,462)
{
link(onData,15578308:doValue,[])
}
Add(MathParse,15797740,665,525)
{
MathStr="1 + %2"
link(onResult,6805360:doValue,[(728,531)(728,499)(660,499)(660,468)])
link(X2,6805360:Value,[])
}
Add(Timer,13915431,553,581)
{
link(onTimer,8736944:doEvent1,[])
}
Add(Edit,1781743,784,581)
{
Left=125
Top=5
link(Str,5608187:Var2,[])
}
Add(Hub,8736944,609,581)
{
OutCount=4
link(onEvent1,1781743:doText,[])
link(onEvent3,290290:doCompare,[(665,601)(665,643)])
link(onEvent4,6805360:doClear,[(647,608)(647,475)])
}
Add(If_else,290290,707,637)
{
Type=2
link(onFalse,5642669:doValue,[(751,650)(751,622)(695,622)(695,594)])
link(Op1,5642669:Value,[])
link(Op2,5608187:Var1,[(720,558)])
}
Add(GetDataEx,5608187,784,553)
{
link(Data,8834749:Var2,[])
}
Add(Memory,5642669,707,588)
{
Point(Data)
link(onData,1640941:doText,[])
link(Data,8834749:Var1,[(713,516)])
}
Add(GetDataEx,8834749,784,511)
{
link(Data,15578308:Value,[])
}
Add(Edit,1640941,854,588)
{
Left=230
Top=5
}
Add(Hub,15154005,392,119)
{
link(onEvent1,7308410:doEvent1,[])
}
Add(Label,2961824,399,56)
{
Left=190
Top=5
Width=35
Height=20
Font=[MS Sans Serif,10,1,0,1]
Caption="MAX"
}
Add(Label,8719720,469,70)
{
Left=80
Top=5
Width=31
Height=20
Font=[MS Sans Serif,10,1,0,1]
Caption="Sec"
}
Add(Memory,15578308,784,462)
{
}


Редактировалось 9 раз(а), последний 2021-07-29 17:50:28
карма: 0

0
Ответов: 8695
Рейтинг: 806
#30: 2021-07-29 18:06:39 ЛС | профиль | цитата
Pavel писал(а):
Доходило до 786 строк данных в секунду

И не забываем о скорости реакции принимающего решение 0.07 -- 0.1 сек. Более 20--32 кадров/сек излишни
карма: 19

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)