, ( ), , , , . - . , . , . , Zorro Trader R, .

, . , , Excel. , , , . -.
. . , , – Python. , . . . , , : , , .
, , , . , C, Pascal Java – . , ( C, Pascal) ( Java). Python, R, MATLAB – , . . , . , . . , C# . C# - , , , , . C# 4 , C, 30 , Python.
, : 1000 1000. :
|
|
|
C, C++
| 1.0
| 1.8
|
Java
| 1.7
| 2.6
|
Pascal
| —
| 4
|
C#
| 3.8
| 9
|
JavaScript
| 18.1
| 16
|
Erlang
| 18
| 31
|
Python
| 119
| 121
|
Ruby
| 98
| 628
|
Matlab
| —
| 621
|
R
| —
| 1738
|
? . . , C 1 . , EasyLanguage 30 . Python – 2 , R – 10 !
The Trend Experiment, . , C . C .
- .
(10- ) .
Zorro Traid: ~ 4 (Lite-C, C)
4: ~ 110 ( mql4, C)
MultiCharts: ~ 155 (EasyLanguage, /Pascal ).
, . . , C/C++. , , , , . ( R). , , .
Zorro-Trader – . , . :
- ( ))
- C . 5
- – DLL
- –
- ( ).
- ( 2-3 ).
- , : , …

, C — (SMA):
function run()
{
vars Close = series(priceClose());
vars MA30 = series(SMA(Close,30));
vars MA100 = series(SMA(Close,100));
Stop = 4*ATR(100);
if(crossOver(MA30,MA100))
enterLong();
if(crossUnder(MA30,MA100))
enterShort();
}
, Zorro Trader . C: , Python R. C/C++ . , Zorro Trader R .
R — . , , , 20 . , , , . , . :
- (“ : , ”)
- R ( ).
- .
- – .
- – .
- .
- ( 15 ).

SMA R :
require(quantmod)
require(PerformanceAnalytics)
Data <- xts(read.zoo("EURUSD.csv", tz="UTC", format="%Y-%m-%d %H:%M", sep=",", header=TRUE))
Close <- Cl(Data)
MA30 <- SMA(Close,30)
MA100 <- SMA(Close,100)
Dir <- ifelse(MA30 > MA100,1,-1) # calculate trade direction
Dir.1 <- c(NA,Dir[-length(Dir)]) # shift by 1 for avoiding peeking bias
Return <- ROC(Close)*Dir.1
charts.PerformanceSummary(na.omit(Return))
, , , . , C. , , stop-loss , . R , , , Quantstart . «» . R , C, . Zorro Trader R .
.
, , , , ( ), . Zorro Trader R. Notepad++. R RStudio. , , , , . Beyond Compare.
Zorro trader R, , :
TSSB . , , , , . , : TSSB , . , , TSSB Zorro Trader.