, ( ), , , , . - . , . , . , 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.