|
( écrites en Easy Language,éditables, modifiables).
Vous pouvez écrire aussi vos propres fonctions qui deviennent alors partie
intégrante de l'Easy language.
Elles sont utilisées dans les systèmes de trading, les indicateurs... en tant que
bloc de programme prêt à l'emploi.
Exemple avec la fonction RSI:
Value1=RSI(close,14);
Calcule le RSI sur 14 barres avec le cours de clôture.
Plot1(value1,"Rsi");
Affiche graphiquement le RSI calculé précédemment.
Pas trop difficile...
début de la page
En fait , vous venez d'utiliser la fonction suivante,
fournie en standard avec TradeStation.
Comme vous le consatez, le code est visible.
Rien de caché dans ce logiciel. Vous pouvez vous inspirer des nombreux exemples
pour faire vos propres versions ou y apporter des modifications.

Début de la page
Toutes les fonctions, études , systèmes ( constitués
de signaux) sont documentées individuellement.
Ellles sont appellées dans le langage de programmation (aide en ligne disponible,
explication pour chacune).
Ci dessous l'ADX -DMI de Welles Wilder:

Aide en ligne sur les signaux déjà préprogrammés dans TradeStation (vue partielle)
Début de la page
Il est possible d'écrire des systèmes de trading (signaux) complexes,
simplement en cliquant sur
des signaux déjà présents dans la librairie (liste partielle ci dessus).
La plupart des signaux classiques sont déjà écrits et documentés...
Tous les codes sont éditables.

System Builder
Début de la page
Par exemple, supposez que vous voulez écrire un système d'achat vente sur le
RSI:
Vous écrivez le signal d'entrée (SIGNAL RSI
Oscillator)
( fenêtre en haut à gauche)
LA sysntaxe est facile à comprendre
" Si on est après la première barre et si le RSI calculé sur
la clôture
( avec un recul optimisable de RSILen) traverse par le haut le
niveau BuyZone (optimisable),
alors acheter à la clôture..
Vous remarquez que cela s'écrit comme de l'anglais parlé ( d'où le nom Easy Language):
If Currentbar>1 and RSI(close,RSILen) crosses over BuyZone then
Buy on Close.
Même raisonnement pour le signal de vente.
La deuxième fenêtre à droite est celle du signal de prise de profit basé
sur une moyenne de l'average true range
( signal déjà écrit comme beaucoup d'autres dans TradeStation2000i).
Il est un peu plus complexe que le signal sur le RSI, et donné ici pour l'exemple
Maintenant, vous pouvez coupler les deux signaux en un seul
( fenêtre en bas
à gauche de SystemBuilder) et même en ajouter d'autres.
Vous pouvez désactiver les composants que vous souhaitez (cases à décocher).
Cette conception modulaire simplifie l'écriture de systèmes de trading complexes.
Naturellement, on peut tout écrire dans le même code,
sans
faire appel au tableau du System Builder.
Début de la page
:
Power Editor de TradeStation2000i avec SystemBuilder
Ensuite il ne vous reste plus qu'à tester le système dans un graphique ou sur
un portefeuille de valeurs
(Voir la page Automatisation et test).
Début de la page
Bien que la plupart des indicateusrs classiques soient écrits
dans Tradestation
, vous pouvez le faire pour les vôtres.
Le principe est le même que pour l'écriture des signaux ci dessus dans le Power Editor,
et vous avez à votre disposition tous les composants de l'Easy Language.
Ces syntaxes sont exportables et importables et protégeables par exportation
du code
compilé seul ( sans le code source).
Vous pourrez donc les échanger avec d'autres utilisateurs de TradeStation.
La liste de fonctions utilisateurs est impressionnante,
mais vous n'êtes pas obligé de tout utiliser!
Vous pouvez crééer les vôtres, en télécharger sur de nombreux sites Internet, voire en
acheter
auprès de programmeurs spécialisés (Solution Providers)
Certaines de ces fonctions ne sont accessibles que dans
OptionStation2000
Début de la page
FONCTIONS |
DMI |
LowW |
ShowShortStop |
| UTILISATEUR |
DMICustom |
LowY |
Skew |
| AB_AddCellRange |
DMIMinus |
LRO |
SkewOpt |
| AB_AverageCells |
DMIMinusCustom |
LowM |
LWAccDis |
| AB_AveragePrice |
DMIPlus |
LowestBar |
SlowD |
| AB_CellCount |
DMIPlusCustom |
MACD |
SlowDClassic |
| AB_ColorIntervals |
Doji |
MassIndex |
SlowDCustom |
| AB_LetterIntervals |
E |
MaxContractProfit |
SlowK |
| AB_Median |
EaseOfMovement |
McClellanOsc |
SlowKClassic |
| AB_ModeCount |
ELDateToString |
Median |
SlowKCustom |
| AB_ModePrice |
EntriesToday |
MedianPrice |
SmoothedAverage |
| AB_RowCalc |
EveningStar |
MFI |
SnapFundValid |
| AB_StdDev |
ExitsToday |
MidPoint |
StandardError |
| AbsoluteBreadth |
ExtremePrice |
MinutesToTime |
Standardize |
| AccumDist |
F |
Mode |
StdDev |
| AccumSwingIndex |
Factorial |
Momentum |
StdDevPAnnualized |
| AdvanceDeclineDiff |
FastD |
MoneyFlow |
StdDevS |
| AdvanceDeclineRatio |
FastDClassic |
MorningStar |
StdDevSAnnualized |
| ADX |
FastDCustom |
MRO |
Stochastics |
| ADXClassic |
FastHighestBar |
MyPrice |
StrColorToNum |
| ADXCustom |
FastK |
LowestFC |
Summation |
| ADXCustomClassic |
FastKCustom |
Next3rdFriday |
SummationFC |
| ADXR |
FastLowestBar |
NormalCumDensity |
SummationIF |
| ADXRClassic |
FindBar |
NormalDensity |
SwingHigh |
| ADXRCustom |
FirstOfMonthJul |
NormalSCDensity |
SwingHighBar |
| ADXRCustomClassic |
FirstOfNextMonthJul |
NthDayOfMonth |
SwingIndex |
| ArmsIndex |
FirstofPrevMonthJul |
NthHighest |
SwingLow |
| Average |
Fisher |
NthHighestBar |
SwingLowBar |
| AverageFC |
FisherINV |
NthLowest |
T |
| AvgDeviation |
G |
NthLowestBar |
TDC.Channel2.Hi |
| AvgPrice |
Gamma |
NumUnits |
TDC.Channel2.Lo |
| AvgTrueRange |
GenerateStrike |
O |
TDC.REI |
| B |
H |
OBV |
TDC.SEQ.SetUp |
| BarAnnualization |
Hammer |
OpenD |
Theta |
| BarNumber |
HangingMan |
OpenM |
TimeSeriesForecast |
| BearishDivergence |
HarmonicMean |
OpenW |
TimeToMinutes |
| BearishEngulfing |
HighD |
OpenY |
TL_Exist |
| BlackModel |
Highest |
P |
TLAngle |
| BlackScholes |
HighestBar |
Parabolic |
TLAngleEasy |
| BollingerBand |
HighestFC |
ParabolicCustom |
TLSlope |
| BullishDivergence |
HighM |
PercentChange |
TLSlopeEasy |
| BullishEngulfing |
HighW |
Percentile |
TLValue |
| BusinessDays |
HighY |
PercentR |
TLValueEasy |
| C |
HPI |
PercentRank |
TRIAverage |
| CalcTime |
I |
Permutation |
Trimmean |
| CCI |
IFF |
PivotHighVS |
TRIX |
| CCIClassic |
ImpliedVolatility |
PivotHighVSBar |
TrueHigh |
| ChaikinOsc |
Intrinsic |
PivotLowVS |
TrueLow |
| CloseD |
IsWorkDay |
PivotLowVSBar |
TrueRange |
| CloseM |
J |
PositionProfitCustom |
TrueRangeCustom |
| CloseW |
K |
PriceVolTrend |
TypicalPrice |
| CloseY |
KeltnerChannel |
ProbAbove |
U |
| CoeffR |
Kurtosis |
ProbBelow |
UlcerIndex |
| Combination |
KurtosisOpt |
ProbBetween |
UltimateOsc |
| Correlation |
L |
Q |
V |
| CountIF |
LastBarOnChart |
Quartile |
Variance |
| Covariance |
LastCalcDate |
R |
VarianceP |
| CSI |
LastCalcTime |
Range |
Vega |
| CSIClassic |
LastHour |
RangeLeader |
Volatility |
| Cum |
Leader |
Rank |
VolatilityClassic |
| D |
LinearRegAngle |
RateOfChange |
VolatilityExVal |
| DailyLosers |
LinearRegAngleFC |
Ring |
VolatilityStdDev |
| DailyWinners |
LinearRegLine |
Round2Fraction |
VolumeOsc |
| DarkCloud |
LinearRegSlope |
RSI |
VolumeROC |
| DayofWeekFix |
LinearRegSlopeFC |
RSIClassic |
W |
| DaysToExpiration |
LinearRegValue |
Rsquared |
WAverage |
| Delta |
LinearRegValueFC |
S |
WeightedClose |
| Detrend |
LowD |
ShootingStar |
ZTes |
| DevSqrd |
Lowest |
ShowLongStop |
|
Début de la page
Elles sont utilisables dans les fonctions utilisateur,
les systèmes de trading, les indicateurs,
les alertes, Paint Bars, Show Me, Activity Bars, Stratégies d'options (OptionStation),
RadarScreen...
Elles constituent l'Easy Language pour la partie vocabulaire.
Certaines de ces fonctions ne sont accessibles que dans
OptionStation2000
Toutes sont documentées dans l'aide en ligne, exemple à
l'appui:
Début de la page

Aide en ligne documentée pour chaque composant de l' Easy Language
Début de la page
Composant de l'Easy Language (II)
FONCTIONS DU LANGUAGE |
Beta |
DarkGray |
| #BEGINALERT |
Beta_Down |
DarkGreen |
| #BEGINCMTRY |
Beta_Up |
DarkMagenta |
| #BEGINCMTRYORALERT |
Bid |
DarkRed |
| #END |
BigPointValue |
Data |
| A |
Black |
DataCompression |
| AB_AddCell |
BlockNumber |
DataInUnion |
| AB_GetCellChar |
Blue |
Date |
| AB_GetCellDate |
Book_Val_Per_Share |
DateToJulian |
| AB_GetCellTime |
BOOL |
Day |
| AB_GetCellValue |
BoxSize |
DayOfMonth |
| AB_GetNumCells |
BreakEvenStopFloor |
DayOfWeek |
| AB_GetZoneHigh |
Buy |
Days |
| AB_GetZoneLow |
By |
Default |
| AB_High |
BYTE |
DefineCustField |
| AB_Low |
C |
DEFINEDLLFUNC |
| AB_RemoveCell |
C |
DeliveryMonth |
| AB_RowHeight |
Call |
DeliveryYear |
| AB_SetActiveCell |
CallCount |
Delta |
| AB_SetRowHeight |
CallITMCount |
Dividend |
| AB_SetZone |
CallOTMCount |
Dividend_Yield |
| Above |
CallSeriesCount |
DividendCount |
| AbsValue |
CallStrikeCount |
DividendDate |
| ActivityData |
Cancel |
DividendTime |
| AddCell |
Ceiling |
Does |
| AddToMovieChain |
CHAR |
DOUBLE |
| Ago |
CheckAlert |
DownTicks |
| Alert |
CheckCommentary |
DownTo |
| AlertEnabled |
Close |
DWORD |
| All |
Commentary |
E |
| An |
CommentaryCl |
EasyLanguageVersion |
| And |
CommentaryEnabled |
Else |
| Arctangent |
Commission |
End |
| Array |
CommodityNumber |
Entry |
| Arrays |
Contract |
EntryDate |
| ARRAYSIZE |
ContractMonth |
EntryPrice |
| ARRAYSTARTADDR |
Contracts |
EntryTime |
| Ask |
ContractYear |
EPS |
| Asset |
Cosine |
EPS_PChng_Y_Ago |
| AssetType |
Cost |
EPS_PChng_YTD |
| AssetVolatility |
Cotangent |
EPSCount |
| At |
CreateLeg |
EPSDate |
| At$ |
Cross |
EPSTime |
| AtCommentaryBar |
Crosses |
ExitDate |
| AvgBarsLosTrade |
Current |
ExitLong |
| AvgBarsWinTrade |
Current_Ratio |
ExitPrice |
| AvgEntryPrice |
CurrentBar |
ExitShort |
| AvgList |
CurrentContracts |
ExitTime |
| B |
CurrentDate |
ExpirationDate |
| Bar |
CurrentEntries |
ExpirationStyle |
| BarInterval |
CurrentTime |
ExpValue |
| Bars |
Cyan |
F |
| BarsSinceEntry |
D |
False |
| BarsSinceExit |
D |
File |
| BarStatus |
DailyLimit |
FileAppend |
| Based |
DarkBlue |
FileDelete |
| Begin |
DarkBrown |
FirstNoticeDate |
| Below |
DarkCyan |
FirstOption |
Début de la page
Composant de l'Easy Language (II)
| FLOAT |
LargestLosTrade |
ModelPosition |
| Floor |
LargestWinTrade |
ModelPrice |
| For |
Last_Split_Date |
ModelVolatility |
| FracPortion |
Last_Split_Fact |
Monday |
| FreeCshFlwPerShare |
LastCalcJDate |
MoneyMgtStopAmt |
| Friday |
LastCalcMMTime |
Month |
| From |
LastTradingDate |
MULTIPLE |
| Future |
LeftSide |
N |
| FutureType |
LeftStr |
Neg |
| G |
Leg |
Net_Profit_Margin |
| G_Rate_EPS_NY |
LegType |
NetProfit |
| G_Rate_Nt_In_NY |
LightGray |
NewLine |
| G_Rate_P_Net_Inc |
Limit |
Next |
| Gamma |
Log |
NoPlot |
| GetBackgroundColor |
LONG |
Not |
| GetBotBound |
Low |
NthMaxList |
| GetCDRomDrive |
Lower |
NthMinList |
| GetCellColor |
LowerStr |
Numeric |
| GetExchangeName |
LPBOOL |
NumericArray |
| GetPlotBGColor |
LPBYTE |
NumericArrayRef |
| GetPlotColor |
LPDOUBLE |
NumericRef |
| GetPlotWidth |
LPDWORD |
NumericSeries |
| GetPredictionValue |
LPFLOAT |
NumericSimple |
| GetRowIncrement |
LPINT |
NumFutures |
| GetSymbolName |
LPLONG |
NumLegs |
| GetSystemName |
LPSTR |
NumLosTrades |
| GetTopBound |
LPWORD |
NumOptions |
| Gr_Rate_P_EPS |
M |
NumToStr |
| Green |
Magenta |
NumWinTrades |
| GrossLoss |
MakeNewMovieRef |
O |
| GrossProfit |
Margin |
O |
| H |
Market |
Of |
| H |
MarketPosition |
On |
| High |
MaxBarsBack |
Open |
| Higher |
MaxBarsForward |
OpenInt |
| HistFundExists |
MaxConsecLosers |
OpenPositionProfit |
| I |
MaxConsecWinners |
Option |
| I |
MaxContracts |
OptionType |
| I_AvgEntryPrice |
MaxContractsHeld |
Or |
| I_ClosedEquity |
MaxEntries |
Over |
| I_CurrentContracts |
MaxGain |
P |
| I_MarketPosition |
MaxIDDrawDown |
Pager_DefaultName |
| I_OpenEquity |
MaxList |
Pager_Send |
| If |
MaxList2 |
PercentProfit |
| IncludeSystem |
MaxLoss |
Place |
| InitialMargin |
MaxPositionLoss |
PlayMovieChain |
| Input |
MaxPositionProfit |
PlaySound |
| Inputs |
MidStr |
Plot |
| Inst_Percent_Held |
MinList |
Plot1 |
| InStr |
MinList2 |
Plot2 |
| INT |
MinMove |
Plot3 |
| IntPortion |
MIVonAsk |
Plot4 |
| Is |
MIVonBid |
PM_GetNumColumns |
| J |
MIVonClose |
PM_SetNumColumns |
| JulianToDate |
MIVonRawAsk |
Pob |
| K |
MIVonRawBid |
Point |
| L |
Moc |
POINTER |
| L |
Mod |
Points |
Début de la page
Composant de l'Easy Language (III)
| PointValue |
Skip |
TickType |
| Pos |
Slippage |
Time |
| Position |
SnapFundExists |
TL_Delete |
| PositionID |
Spaces |
TL_GetAlert |
| PositionProfit |
Square |
TL_GetBeginDate |
| PositionStatus |
SquareRoot |
TL_GetBeginTime |
| Power |
StartDate |
TL_GetBeginVal |
| Price_To_Book |
StockSplit |
TL_GetColor |
| PriceScale |
StockSplitCount |
TL_GetEndDate |
| Print |
StockSplitDate |
TL_GetEndTime |
| Printer |
StockSplitTime |
TL_GetEndVal |
| Product |
Stop |
TL_GetExtLeft |
| Profit |
Strike |
TL_GetExtRight |
| ProfitTargetStop |
StrikeCount |
TL_GetFirst |
| Protective |
StrikeITMCount |
TL_GetNext |
| Put |
StrikeOTMCount |
TL_GetSize |
| PutCount |
String |
TL_GetStyle |
| PutITMCount |
StringArray |
TL_GetValue |
| PutOTMCount |
StringArrayRef |
TL_New |
| PutSeriesCount |
StringRef |
TL_SetAlert |
| PutStrikeCount |
StringSeries |
TL_SetBegin |
| Q |
StringSimple |
TL_SetColor |
| Quick_Ratio |
StrLen |
TL_SetEnd |
| R |
StrToNum |
TL_SetExtLeft |
| Random |
SumList |
TL_SetExtRight |
| RawAsk |
Sunday |
TL_SetSize |
| RawBid |
T |
TL_SetStyle |
| Red |
T |
To |
| Repeat |
Tangent |
Today |
| Ret_On_Avg_Equity |
Target |
Tomorrow |
| RevSize |
TargetType |
Tool_Black |
| Rho |
Text |
Tool_Blue |
| RightSide |
Text_Delete |
Tool_Cyan |
| RightStr |
Text_GetColor |
Tool_DarkBlue |
| Round |
Text_GetDate |
Tool_DarkBrown |
| S |
Text_GetFirst |
Tool_DarkCyan |
| Saturday |
Text_GetHStyle |
Tool_DarkGray |
| Screen |
Text_GetNext |
Tool_DarkGreen |
| Sell |
Text_GetString |
Tool_DarkMagenta |
| SeriesCount |
Text_GetTime |
Tool_DarkRed |
| Sess1EndTime |
Text_GetValue |
Tool_DarkYellow |
| Sess1FirstBarTime |
Text_GetVStyle |
Tool_Dashed |
| Sess1StartTime |
Text_New |
Tool_Dashed2 |
| Sess2EndTime |
Text_SetColor |
Tool_Dashed3 |
| Sess2FirstBarTime |
Text_SetLocation |
Tool_Dotted |
| Sess2StartTime |
Text_SetString |
Tool_Green |
| SetBotBound |
Text_SetStyle |
Tool_LightGray |
| SetPlotBGColor |
Than |
Tool_Magenta |
| SetPlotColor |
The |
Tool_Red |
| SetPlotWidth |
Then |
Tool_Solid |
| SetPredictionValue |
TheoreticalGrossIn |
Tool_White |
| SetRowIncrement |
TheoreticalGrossOut |
Tool_Yellow |
| SetTopBound |
TheoreticalValue |
Total |
| SGA_Exp_By_NetSales |
Theta |
TotalBarsLosTrades |
| Share |
This |
TotalBarsWinTrades |
| Shares |
Thursday |
TotalTrades |
| Sign |
Ticks |
TrailingStopAmt |
| Sine |
Début de la page
Composant de l'Easy Language (IV)
| TrailingStopPct |
| True |
| TrueFalse |
| TrueFalseArray |
| TrueFalseArrayRef |
| TrueFalseRef |
| TrueFalseSeries |
| TrueFalseSimple |
| TtlDbt_By_NetAssts |
| Tuesday |
| U |
| Under |
| UnionSess1EndTime |
| UnionSess1FirstBar |
| UnionSess1StartTime |
| UnionSess2EndTime |
| UnionSess2FirstBar |
| UnionSess2StartTime |
| Units |
| UNSIGNED |
| Until |
| UpperStr |
| UpTicks |
| V |
| V |
| Var |
| Variable |
| Variables |
| Vars |
| VARSIZE |
| VARSTARTADDR |
| Vega |
| VOID |
| Volume |
| W |
| Was |
| Wednesday |
| While |
| White |
| WORD |
| X |
| Y |
| Year |
| Yellow |
| Yesterday |
Début de la page
|

 |
Easy Language.. .
|
 |
Il s'agit d'un langage de programmation à base de Pascal, qui a été enrichi de
fonctions spécifiques à l'analyse technique.
De plus, les systèmes simples peuvent être écrits en anglais parlé, ce qui fait qu'il
convient aux non programmeurs.
Les programmeurs chevronnés retrouveront toutes les foctionnalités d'un vrai langage
de programmation ( manipulation de variables, tableaux multidimentionnels, chaînes de
caractères, boucles et itérations conditionnelles, écriture de leurs propres
fonctions,
ouverture au langage C par appel de DLL's externes.
|
 |
 |
Pour la part syntaxe, L'Easy
Langage dérive du Pascal, le langage le plus simple qui soit en
programmation.
Il s'agit donc d'un langage de programmation facile à comprendre.
Les fonctions et mots réservés ( liste plus bas) sont issus de ce langage :
( if condition ...then
begin
...
end;)
ou bien rajoutées par TradeStation Technologies.
Ces fonctions et expressions ne sont pas modifiables, contrairement aux fonctions
utilisateurs.
Par contre, elles couvrent ou permettent de couvrir tous les domaines mathématiques
et autres utilisés en analyse technique.
-ll n'existe aucune
limite à la complexité d'un programme en Easy Language!
|