Jump to content
Co nového? Mé kurzy
Diskuze Sledované příspěvky Žebříčky

Doporučené příspěvky

  • 4 týdny později...
Odesláno

Zdravim

neresil jste nahodou nekdo nekdy pri programovani studie do SC moznost exportu dat do souboru ? Nemam na mysli primo graf, ale rekneme matice vysledku, ktere jsou ulozeny v sg.Subgraph[] Dohledal jsem v ramci studie exportu scid, ze by to slo pres externi dll, kde se pouzivaji Stream I/O objekty, nicmene moznosti podobneho exportu primo v ramci studie jsem se nikde nedohrabal. Jde to vubec touto cestou ?

Dik za pripadne nakopnuti spravnym smerem

Libor

Odesláno

Rob99,

prozatím jsem přesně toto neřešil, nicméně bych řekl, že jsou dvě možnosti:

1. napsat externí dll (pro export dat) a tu v Custom study volat
2. pomocí Worksheets study by mělo jít exportovat zároveň i hodnoty indikátorů takže si myslím, že pokud by jste měl hodnoty sc.Subgraph[] jako indikátor, měly by se také exportovat

Aleš

Odesláno

2 Alec

Jj. Tak nejak jsem dosel k stejnym zaverum, ze jine cesty neni. Nicmene obe reseni jsou pro mne dost obtizna, resp. pro externi dll potrebuji jiny compiler + knihovny, a nejak se mi zatim nepodarilo s tim vsim srovnat. Zkousel jsem CodeBlock a nejake externi veci z VS2008, nicmene vysledek nikde. Z worksheets moc nepracuji, a navic potrebuji data z celeho "kvartalu" a nejsem si jist jestli se da na tohle worksheets pouzit.

V podstate o nic nejde, jen ze jsem naprogramoval svuj obchodni system do AOS a chtel jsem si usetrit praci pri testech, a mit vstupy a vystupy rovnou vygenerovane ve file, kde bych s nimi dal pracoval. Takhle si hodnoty zobrazuji primo v grafu a musim to opisovat. Takze je otazka, jestli mi studium exportu v C++ stoji za tu pridanou hodnotu. Asi nejschudnejsi bude strategii poslat do excelu pres worksheetstudy a pak dal zpracovavat. (Jasne vse v sc.Subgraph resp. sg. se chova zaroven jako 'indikator', takze v tom neni problem)

Dik za konzultaci, a at se dari ;)

Libor

Odesláno

Pratele, rad bych pozadal ty z vas, kteri rozumi programovani. Na support board k sierre jsem nalezl kod, ktery zobrazuje cas, jak dlouho se vykresluje posledni usecka, viz. priloha. Kod vkladam radeji na obrazku, z duvodu prehlednosti. Uznavam, ze mi vadi detail, ale cas vykreslovani usecky je v ciselnem formatu. (Tj. kdyz indikator ukazuje napriklad 4.50, pak ve formatu MM:SS je to 4:30). Dokazal by nekdo upravit kod do formatu casu? Predem diky. Tomas

12040

Odesláno

2 tomicek :

Hodnota casu se da zobrazit napr. takto (v tom Bar graph to pujde ovsem tezko)

s_UseTool Tool;
// Reset objectu tool
Tool.Clear();
Tool.ChartNumber = sg.ChartNumber;
Tool.Tool = TOOL_TEXT;
Tool.LineNumber = 1;
Tool.AddMethod = UTAM_ADD_ALWAYS;
Tool.FontSize = 10;
// Promenne casu
int Hour, Minute, Second;
// Naliti hodnot
TIME_TO_HMS(sg.BaseDateTimeIn[sg.CurrentIndex].GetTime(), Hour, Minute, Second);
// Co se ma vypsat
Tool.Text.Format("%d:%d:%d", Hour,Minute,Second );
// Kdy se to ma vypsat
Tool.BeginDateTime = sg.BaseDateTimeIn[sg.CurrentIndex];
// Kam se to ma vypsat (osa y)
Tool.BeginValue = sg.BaseData[SC_HIGH][sg.CurrentIndex] + 3;
// Barvicky a ostatni customizace
Tool.Color = RGB(0,255,255);
Tool.TextAlignment = DT_CENTER;
// Provedeni
sg.UseToolEx(Tool);

Prevod z desitek na min,sec je predpokladam jasny, ale pro jistotu....(0.5*60) :)

Kdyby ste to sem soupl jako kus kodu.. Nechce se mi to hledat ani prepisovat, takze nevim presne co s tim chcete, ale tak tohle je aspon pro inspiraci.

Odesláno

to: Rob99

takze vkladam presny kod:
ten kdyz zkompiluji do .dll - funguje perfektne az na ten format. bohuzel jak jsem psal, neumim ho prevest tak, aby se zobrazoval ve formatu HH:MM:SS
jinak kod funguje tak, ze zobrazuje historii casu (doby) ve vykreslovani jednotlivych usecek (samozrejme v alternativnim grafu) a dokaze zobrazovat aktualni dobu vykreslovani posledni usecky

diky za pomoc

tomas


______________________

#include "sierrachart.h"

SCDLLName("Dave's Custom Studies")

SCSFExport scsf_TimeHistogram(SCStudyGraphRef sc)
{
// Section 1 - Set the configuration variables

if (sc.SetDefaults)
{
// Set the configuration and defaults

sc.GraphName = "Time Per Bar";

sc.StudyDescription = "Minutes per bar.";

sc.AutoLoop = 1; // true

// Uncomment the following line when you're done with your
// development. This makes calling your function faster.
sc.FreeDLL = 0; // false

sc.Subgraph[0].Name = "Time Histogram";
sc.Subgraph[0].PrimaryColor = RGB(0,0,255); // Blue
sc.Subgraph[0].DrawStyle = DRAWSTYLE_BAR; // Look in scconstants.h for other draw styles


return;
}


// Section 2 - Do data processing

int Hour, Minute, Second;
sc.BaseDateTimeIn[sc.Index-1].GetTimeHMS(Hour,Minute,Second);

if ((Hour==9 && Minute>29) || (Hour>9 && Hour int barTime = sc.BaseDateTimeIn.TimeAt(sc.Index)-sc.BaseDateTimeIn.TimeAt(sc.Index-1);
int barTimeCurrent = sc.CurrentSystemDateTime.GetTime()-sc.BaseDateTimeIn.TimeAt(sc.Index);
// if (barTime // barTime+=24*60*60;
// }

float barTimeMins=barTime/60.;
float barTimeMinsCurrent=barTimeCurrent/60.;
if (barTimeMins>0){
sc.Subgraph[0][sc.Index-1] = barTimeMins;
}
if (barTimeMinsCurrent>0){
sc.Subgraph[0][sc.Index] = barTimeMinsCurrent;
}
}

}

Odesláno

2 tomicek :

No tak jsem na to koukal, a nevim jestli to pujde. Jde o to, ze se v hlavicce te studie zobrazuje hodnota osy y, kam nacpat cas bude asi problem. Nenasel jsem nejakej rozumnej zpusob jak to zobrazit. Kdyby se jednalo o vyjimecnou hodnotu, tak nastroj tool je na to vhodny, jenze ty chces zobrazovat prevedne hodnoty bar od bar, a to nevim jak udelat. Podle mne jedina schudna cesta je, najit nekde jak SC zobrazuje hodnoty v headru kazdeho regionu, a opajcnout jak zobrazuji v regionu 0 hodnoty datumu a casu. Resp. nekde vyguglit jak do toho headru nacpat jakoukoli jinou hodnotu. Pak uz by to realizovatelny bylo. Prevedes minuty na hodiny, minuty, sec a zobrazis to pro kazdej bar do toho headru. Ale jak to presne udelat... to netusim. Taky by se mi tohle hodilo... mit moznost ovlivnit co tam ma byt zobrazeno a co ne, eventuelne tam posilat svoje hodnoty. Ja to resim prave pres nastroj Tool, nicmene to neni uplne ono. V pripade nutnosti zobrazovat hodnotu pro kazdou svicku je to nepouzitelne.

Takze jsem asi moc neporadil, sry.
Libor

Odesláno

No prave. To nebude vypadat vubec nijak... Vem si usecku sirokou cca 1mm a k tomu "hh:nn:ss" - naprosto nepouzitelne. Vyjde ti z toho souvisly pas cisel. Uz jsem to smazal, ale jestli na tom trvas, tak to napisu znovu a uvidis co z toho vyleze za paskvil :) Kdyz je potreba info pro kazdej bar, tak idealni je ten header s eventem pro zobrazeni hodnoty tak, jak rolujes s grafem... imho teda.

Návštěvník
Téma je uzavřené.
×
×
  • Vytvořit...