Hallo!
Ich bin neu und versuche, mein erstes brauchbares Tradingsystem mit Profitziel und Trailingstops zu erstellen. Dazu habe ich die Beispiel -EFS aus dem "Guide to Developing eSignal Strategies" abgetippt. Leider wurde das Programm so aber nie getestet, scheint mir...
Ok, der Part für die Trailingstopanpassung ist so nicht ok. Aber das kann nicht alles sein, was nicht stimmt. Es wäre super, wenn jemand einen Blick darauf werfen könnte!
many Thanks...!!
var vSMA14 = new MAStudy(14, 0, "Close", MAStudy.SIMPLE);
var vSMA35 = new MAStudy(35, 0, "Close", MAStudy.SIMPLE);
var vMOM10 = new MOMStudy(10, "Close");
var nStopLevel;
var nTradeEntryprice;
var ProfitTarget1 = 0.5;
var nsignal;
var nNewTrade;
function preMain() {
setPriceStudy(true);
setStudyTitle("Armin_14er35erMAcross_1");
setCursorLabelName("PT CODE");
}
function main() {
if ((Strategy.isInTrade() == false) && (nNewTrade = 1 )) { //Neuer Trade vorhanden?
nTradeEntryPrice = open () ;
nNewTrade = 0;
}
if ((Strategy.isInTrade() == true) && (Strategy.isShort() == true)) { //Profitziel erreicht/Shorttrade?
if (low() <= (nTradeEntryPrice - ProfitTarget1)) {
Strategy.doCover("Short PT1 Exit", Strategy.Stop, Strategy.THISBAR,
Strategy.getDefaultLotSize(), (nTradeEntryPrice - ProfitTarget1));
}
}
if ((Strategy.isInTrade() == true) && (Strategy.isLong() == true)) { //Profitziel erreicht/Longtrade?
if (high() >= (nTradeEntryPrice + ProfitTarget1)) {
Strategy.doSell("Long PT1 Exit", Strategy.Stop, Strategy.THISBAR,
Strategy.getDefaultLotSize(), (nTradeEntryPrice + ProfitTarget1));
}
}
if ((Strategy.isInTrade() == true) && (Strategy.isShort() == true)) { //Stoppkurs erreicht/Short? Abstoßen.
if (high() >= nStopLevel) {
Strategy.doCover("Short Stop Exit", Strategy.Stop, Strategy.THISBAR,
Strategy.getDefaultLotSize(), nStopLevel);
}
}
if ((Strategy.isInTrade() == true) && (Strategy.isLong() == true)) { //Stoppkurs erreicht/Long? Abstoßen.
if (low() <= nStopLevel) {
Strategy.doSell("Long Stop Exit", Strategy.Stop, Strategy.THISBAR,
Strategy.getDefaultLotSize(), nStopLevel);
}
}
if ((Strategy.isInTrade() == true) && (Strategy.isShort() == true)) { //Stoppkurse anpassen/Short
nStopLevel = high (-1) + 0.25;
}
if ((Strategy.isInTrade() == true) && (Strategy.isLong() == true)) { //Stoppkurse anpassen/Long
nStopLevel = low (-1) - 0.25;
}
if (Strategy.isInTrade() == false) { //Neue Handelssignale identifizieren
if (
(vSMA14.getValue(MAStudy.MA) > vSMA35.getValue(MAStudy.MA)) && //für Long
(vMOM10.getValue(MOMStudy.MOM) >= 0.1)) {
nNewTrade = 1;
nsignal = +1;
}
if (
(vSMA14.getValue(MAStudy.MA) < vSMA35.getValue(MAStudy.MA)) && //für Short
(vMOM10.getValue(MOMStudy.MOM) < -0.1)) {
nNewTrade = 1;
nsignal = -1;
}
}
if (nNewTrade == 1) { //Trades ausführen, wenn nNewtrade getriggert
if (Strategy.isInTrade() == true) {
if ((nsignal > 0) && (Strategy.isShort() == true)) { //Long
Strategy.doCover("Exit Short", Strategy.MARKET, Strategy.NEXTBAR);
Strategy.doLong("Rev Long", Strategy.MARKET, Strategy.NEXTBAR);
nStopLevel = low (-1) - 0.25;
}
if ((nsignal < 0) && (Strategy.isLong() == true)) { //Short
Strategy.doSell("Exit Long", Strategy.MARKET, Strategy.NEXTBAR);
Strategy.doShort("Rev Short", Strategy.MARKET, Strategy.NEXTBAR);
nStopLevel = high (-1) + 0.25;
}
}
else {
if (nsignal > 0) {
Strategy.doLong("Go Long", Strategy.MARKET, Strategy.NEXTBAR); //Long
nStopLevel = low (-1) - 0.25;
}
if (nsignal < 0) {
Strategy.doShort("Go Short", Strategy.MARKET, Strategy.NEXTBAR); //Short
nStopLevel = high (-1) + 0.25;
}
}
}
}
Ich bin neu und versuche, mein erstes brauchbares Tradingsystem mit Profitziel und Trailingstops zu erstellen. Dazu habe ich die Beispiel -EFS aus dem "Guide to Developing eSignal Strategies" abgetippt. Leider wurde das Programm so aber nie getestet, scheint mir...
Ok, der Part für die Trailingstopanpassung ist so nicht ok. Aber das kann nicht alles sein, was nicht stimmt. Es wäre super, wenn jemand einen Blick darauf werfen könnte!
many Thanks...!!
var vSMA14 = new MAStudy(14, 0, "Close", MAStudy.SIMPLE);
var vSMA35 = new MAStudy(35, 0, "Close", MAStudy.SIMPLE);
var vMOM10 = new MOMStudy(10, "Close");
var nStopLevel;
var nTradeEntryprice;
var ProfitTarget1 = 0.5;
var nsignal;
var nNewTrade;
function preMain() {
setPriceStudy(true);
setStudyTitle("Armin_14er35erMAcross_1");
setCursorLabelName("PT CODE");
}
function main() {
if ((Strategy.isInTrade() == false) && (nNewTrade = 1 )) { //Neuer Trade vorhanden?
nTradeEntryPrice = open () ;
nNewTrade = 0;
}
if ((Strategy.isInTrade() == true) && (Strategy.isShort() == true)) { //Profitziel erreicht/Shorttrade?
if (low() <= (nTradeEntryPrice - ProfitTarget1)) {
Strategy.doCover("Short PT1 Exit", Strategy.Stop, Strategy.THISBAR,
Strategy.getDefaultLotSize(), (nTradeEntryPrice - ProfitTarget1));
}
}
if ((Strategy.isInTrade() == true) && (Strategy.isLong() == true)) { //Profitziel erreicht/Longtrade?
if (high() >= (nTradeEntryPrice + ProfitTarget1)) {
Strategy.doSell("Long PT1 Exit", Strategy.Stop, Strategy.THISBAR,
Strategy.getDefaultLotSize(), (nTradeEntryPrice + ProfitTarget1));
}
}
if ((Strategy.isInTrade() == true) && (Strategy.isShort() == true)) { //Stoppkurs erreicht/Short? Abstoßen.
if (high() >= nStopLevel) {
Strategy.doCover("Short Stop Exit", Strategy.Stop, Strategy.THISBAR,
Strategy.getDefaultLotSize(), nStopLevel);
}
}
if ((Strategy.isInTrade() == true) && (Strategy.isLong() == true)) { //Stoppkurs erreicht/Long? Abstoßen.
if (low() <= nStopLevel) {
Strategy.doSell("Long Stop Exit", Strategy.Stop, Strategy.THISBAR,
Strategy.getDefaultLotSize(), nStopLevel);
}
}
if ((Strategy.isInTrade() == true) && (Strategy.isShort() == true)) { //Stoppkurse anpassen/Short
nStopLevel = high (-1) + 0.25;
}
if ((Strategy.isInTrade() == true) && (Strategy.isLong() == true)) { //Stoppkurse anpassen/Long
nStopLevel = low (-1) - 0.25;
}
if (Strategy.isInTrade() == false) { //Neue Handelssignale identifizieren
if (
(vSMA14.getValue(MAStudy.MA) > vSMA35.getValue(MAStudy.MA)) && //für Long
(vMOM10.getValue(MOMStudy.MOM) >= 0.1)) {
nNewTrade = 1;
nsignal = +1;
}
if (
(vSMA14.getValue(MAStudy.MA) < vSMA35.getValue(MAStudy.MA)) && //für Short
(vMOM10.getValue(MOMStudy.MOM) < -0.1)) {
nNewTrade = 1;
nsignal = -1;
}
}
if (nNewTrade == 1) { //Trades ausführen, wenn nNewtrade getriggert
if (Strategy.isInTrade() == true) {
if ((nsignal > 0) && (Strategy.isShort() == true)) { //Long
Strategy.doCover("Exit Short", Strategy.MARKET, Strategy.NEXTBAR);
Strategy.doLong("Rev Long", Strategy.MARKET, Strategy.NEXTBAR);
nStopLevel = low (-1) - 0.25;
}
if ((nsignal < 0) && (Strategy.isLong() == true)) { //Short
Strategy.doSell("Exit Long", Strategy.MARKET, Strategy.NEXTBAR);
Strategy.doShort("Rev Short", Strategy.MARKET, Strategy.NEXTBAR);
nStopLevel = high (-1) + 0.25;
}
}
else {
if (nsignal > 0) {
Strategy.doLong("Go Long", Strategy.MARKET, Strategy.NEXTBAR); //Long
nStopLevel = low (-1) - 0.25;
}
if (nsignal < 0) {
Strategy.doShort("Go Short", Strategy.MARKET, Strategy.NEXTBAR); //Short
nStopLevel = high (-1) + 0.25;
}
}
}
}
Comment