Autor Thema: Minimaler SL Wert = 7 ? ActivTrades  (Gelesen 514 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

  • Fingerwundtipper
  • ****
    • Beiträge: 322
    • Karma: +79/-0
    • Mitglied seit:
      07 Sep 2009

  • Building Blaster Airhockey Canyon Shooter Stop The Bus DogBalloooon
    Miami Shark Beat The Meter Powerpool 2
  • Stop
Minimaler SL Wert = 7 ? ActivTrades
« am: November 15, 2011, 23:37:44 pm »
Hallo liebes Forum,

ich bin bei ActivTrades und beim Backtest ist mir was aufgefallen. Bei einem SL unter 7 wird der SL auf den selben Wert gesetzt wie der Kaufpreis. Ok das scheint wohl die Grenze von ActivTrades zu sein. Was mich aber wundert warum dann die Order nicht sofort wieder geschlossen wird ? Eigentlich müsste doch beim selben Wert von Kurs und SL die Order sofort wieder geschlossen werden oder?
Wie ist das zu erklären denn der Trade wird nicht geschlossen und läuft in den Gewinn.

Lieben Gruß

Von nichts kommt nichts

Forexfabrik

Minimaler SL Wert = 7 ? ActivTrades
« am: November 15, 2011, 23:37:44 pm »

  • Ist Forum süchtig
  • ****
    • Beiträge: 1567
    • Karma: +431/-289
    • Mitglied seit:
      16 Jun 2009

  • Vintage Carbon Backgammon Spinning Bubbles Air Traffic Chief 4 Wheels Madness
    Cryptraider Skidwrx Formula Fun
  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #1 am: November 16, 2011, 09:22:10 am »
was hast du da tolles gecodet?
ist aber nur backtest, das der immer ein wenig anders ist ist bekannt
The biggest drawdown is ahead of you. (from Joel R.)

aktueller Tetris Rekordhalter!!!!!!!!!!!!!!!!

warum ist mein karma positiv??????? bitte immer auf ein minus mehr als plus

  • Fingerwundtipper
  • ****
    • Beiträge: 322
    • Karma: +79/-0
    • Mitglied seit:
      07 Sep 2009

  • Building Blaster Airhockey Canyon Shooter Stop The Bus DogBalloooon
    Miami Shark Beat The Meter Powerpool 2
  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #2 am: November 16, 2011, 13:26:09 pm »
Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
was hast du da tolles gecodet?
:D das frag ich mich auch manchmal

Jo ich werds mal im Demo testen das mitm Backtest ist schon suspekt
Von nichts kommt nichts

  • Gehört zum Inventar
  • ***
    • Beiträge: 1066
    • Karma: +420/-4
    • Mitglied seit:
      31 Dec 2008
  • Broker: RBS

  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #3 am: November 16, 2011, 16:20:38 pm »
Nach Deinem Bildchen zu urteilen, sollte das erst mal so sein.
Eine Erklärung wäre folgende:
Der SL wird bei diesem EA durch ein OrderModify() erst nach! der Orderöffnung gesetzt. Wenn in der Anzeige!! der SL von 1,3047 aber ein aufgerundeter Wert ist, in der Realität aber z.B. 1,30467 ist und der Kurs sofort Richtung Norden geht, dann wird auch der SL nicht ausgelöst. Die zentrale Frage ist also, wie wird der SL berechnet?

traderdoc
Pokerregel: "Auch bei dem Anschein eines sicheren Gewinnes, muss man ablassen können."

  • Fingerwundtipper
  • ****
    • Beiträge: 322
    • Karma: +79/-0
    • Mitglied seit:
      07 Sep 2009

  • Building Blaster Airhockey Canyon Shooter Stop The Bus DogBalloooon
    Miami Shark Beat The Meter Powerpool 2
  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #4 am: November 16, 2011, 17:07:53 pm »
Ja genau erst die Order und danach wird SL/TP durchs OrderModify definiert. Das mit dem abgerundeten Wert war mir nicht bewusst das wär eine gute Erklärung. Wo kann man denn den reellen Wert sehen ich hab noch nirgendwo mehr als 4 Nachkommastellen bei mir gesehen ?

Vielleicht hilft der Code ich füg ihn mal dran. Hab ihn selbst auch nur Kopiert gehabt vielleicht sind die Zeilen nur Schrott ich kann es noch nicht wirklich beurteilen. Trades öffnen tut er zumindest.

Code: Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
void Order1()
{
    double SL = Ask - SL*PipValue*Point;
    if (SL == 0) SL = 0;
    double TP = Ask + TP*PipValue*Point;
    if (TP == 0) TP = 0;
    int ticket = -1;
    if (true)
    ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, 4, 0, 0, "My Expert", MagicNumber, 0, Yellow);
    else
    ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, 4, SL, TP, "My Expert", MagicNumber, 0, Yellow);
    if (ticket > -1)
    {
        if (true)
        {
            OrderSelect(ticket, SELECT_BY_TICKET);
            bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Yellow);
            if (ret == false)
            Print("OrderModify() error - ", ErrorDescription(GetLastError()));
        }
         
    }
    else
    {
        Print("OrderSend() error - ", ErrorDescription(GetLastError()));
    }
}

Da fällt mir gerade noch auf das beim Backtest auch wie am Laufband folgende Fehlermeldung entsanden ist:
OrderModify error 1
OrderModify() error - no error

Vielleicht hängt das ja alles zusammen...

LG

Von nichts kommt nichts

  • Gehört zum Inventar
  • ***
    • Beiträge: 1066
    • Karma: +420/-4
    • Mitglied seit:
      31 Dec 2008
  • Broker: RBS

  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #5 am: November 16, 2011, 17:58:35 pm »
Hallo Sasch,

Es kann nur an der Variable Pipvalue liegen, wenn meine Theorie aufgehen soll. Denn Point ist entweder 0,01 bzw. 0,0001 oder 0,001 bzw. 0,00001 (je nachdem ob es ein 4- oder 5-Digit-Broker ist). Welchen Wert hat denn Pipvalue in Deinem EA? Eigentlich reicht zur Berechnung des SL die Formel: double SL = Ask - SL*Point; Denn es wird vom Ask der Pipwert des SL abgezogen (natürlich multipliziert mit Point).
Ich habe in Deinen Code die Zeile Print(DoubleToStr(SL, 6)); eingefügt. Dann solltest Du beim Strategie-Testen unter "Journal" den Wert für SL als Zahl mit 6 Stellen nach dem Komma angezeigt bekommen.

Code: Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
void Order1()
{
    double SL = Ask - SL*PipValue*Point;
   
    Print(DoubleToStr(SL, 6));

    if (SL == 0) SL = 0;
    double TP = Ask + TP*PipValue*Point;
    if (TP == 0) TP = 0;
    int ticket = -1;
    if (true)
    ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, 4, 0, 0, "My Expert", MagicNumber, 0, Yellow);
    else
    ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, 4, SL, TP, "My Expert", MagicNumber, 0, Yellow);
    if (ticket > -1)
    {
        if (true)
        {
            OrderSelect(ticket, SELECT_BY_TICKET);
            bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Yellow);
            if (ret == false)
            Print("OrderModify() error - ", ErrorDescription(GetLastError()));
        }
         
    }
    else
    {
        Print("OrderSend() error - ", ErrorDescription(GetLastError()));
    }
}

In Deinem! Code ist die 4. und 6. Zeile total überflüssig! Denn z.B. SL könnte nur dann 0 werden, wenn der Term SL*PipValue*Point den Wert von Ask annimmt.

traderdoc
Pokerregel: "Auch bei dem Anschein eines sicheren Gewinnes, muss man ablassen können."

  • Fingerwundtipper
  • ****
    • Beiträge: 322
    • Karma: +79/-0
    • Mitglied seit:
      07 Sep 2009

  • Building Blaster Airhockey Canyon Shooter Stop The Bus DogBalloooon
    Miami Shark Beat The Meter Powerpool 2
  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #6 am: November 16, 2011, 19:13:17 pm »
Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
Ich habe in Deinen Code die Zeile Print(DoubleToStr(SL, 6)); eingefügt. Dann solltest Du beim Strategie-Testen unter "Journal" den Wert für SL als Zahl mit 6 Stellen nach dem Komma angezeigt bekommen.

Ich hab es ausgetauscht und es kommt immer was mit 00 am Schluss raus. ZB: 1.369400

Hab geguckt der PipValue ist 1
Und es sind 4 Digits (AT Standard Konto)

OK was bedeutet das jetzt ?

Ansonsten gibt’s jetzt noch neue Errors siehe Bild
« Letzte Änderung: November 16, 2011, 19:22:56 pm von Sasch »
Von nichts kommt nichts

  • Gehört zum Inventar
  • ***
    • Beiträge: 1066
    • Karma: +420/-4
    • Mitglied seit:
      31 Dec 2008
  • Broker: RBS

  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #7 am: November 16, 2011, 19:31:27 pm »
1. Die Werte für SL werden nicht! gerundet., erkennbar an den beiden Nullen, d.h 4-Digit-Broker also Zahlen mit 4 (2) Stellen hinter dem Komma. (Ist aber nun für Pipvalue = 1 auch völlig klar)
2. Meine Theorie ist damit widerlegt.
3. Ich habe erstmal weiter keine Idee.
4. Aus dem Bildchen geht hervor, dass eine Buy-Order geöffnet wurde zu der einmal!! kein SL gesetzt werden konnte, weil wahrscheinlich der SL zu dicht am OpenPrice sich befand. Der Abstand darf einen bestimmten Wert nicht unterschreiten. Ersichtlich, wenn man mit F9 eine neue Order eröffnen würde und dann bei Typ auf Pending Order geht, erscheint unten der Hinweis, wie weit der Preis (auch SL und TP) vom Marktpreis entfernt sein muß.
Deine Buy wurde aber im Minus! geschlossen (über SL oder was?)

traderdoc
Pokerregel: "Auch bei dem Anschein eines sicheren Gewinnes, muss man ablassen können."

  • Fingerwundtipper
  • ****
    • Beiträge: 322
    • Karma: +79/-0
    • Mitglied seit:
      07 Sep 2009

  • Building Blaster Airhockey Canyon Shooter Stop The Bus DogBalloooon
    Miami Shark Beat The Meter Powerpool 2
  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #8 am: November 16, 2011, 23:14:17 pm »
OK ich hab nochmal die Ursprungsvariante und die veränderte Variante verglichen. Nur bei der veränderten Variante wird kein SL/TP gesetzt. Es liegt nicht am Abstand den hatte ich bei beiden auf 20 (Mindestentfernung ist 5Pip). Meine Vermutung ist das die 4. und 6. Zeile doch gebraucht wird denn damit werden TP+SL gesetzt. Im EA gibt es noch ein weiteren OrderModify Teil der SL+TP nach einer vorigen Bedingung ändert. Vielleicht hat es damit zu tun...

Hier der Modify Teil
Code: Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
void OrderModify()
{
    for (int i=OrdersTotal()-1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
        if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
        {
            double price = Ask;
            if (false == false)
            {
                price = OrderOpenPrice();
            }
            bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), price - Modify_SL*PipValue*Point, price + Modify_TP*PipValue*Point, 0, Yellow);
            if (ret == false)
            Print("OrderModify() error - ", ErrorDescription(GetLastError()));
        }
    }
   
}

Anscheint ist es auch dieser Error-Print der das Massenhafte "OrderModify error 1, OrderModify() error - no error" usw verursacht...

LG
Von nichts kommt nichts

  • Gehört zum Inventar
  • ***
    • Beiträge: 1066
    • Karma: +420/-4
    • Mitglied seit:
      31 Dec 2008
  • Broker: RBS

  • Stop
Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #9 am: November 16, 2011, 23:53:01 pm »
Also bei folgendem Code wird aus der sicherlich vorher als int deklarierten Variable SL (Pip-Wert) eine Variable gleichen Namens!? als double deklariert. Selbst wenn vorher SL = 0 (als int deklariert!!) war, dann wird in der Formel double SL = Ask - SL*PipValue*Point; SL neu berechnet. SL wäre dann gleich Ask, was zum Fehker 130 führen würde, denn der SL läge auf dem Entrypreis! In der nächsten Zeile: if (SL == 0) SL = 0; wird nun die Bedingung abgefragt, falls SL == 0 ist, dann soll SL = 0 sein, ja wenn man SL abfragt, ob es 0 ist, dann braucht man nicht mehr SL die  0 zuweisen!! Aber SL kann nicht 0 werden (s. früherer Post!). Anders würde sich der Code verhalten, wenn es eine andere Schreibweise für SL gäbe, nämlich z.B. sl und SL. Das wären zwei völlig verschiedene Variablen, wobei die eine als int und die andere als double deklariert werden könnte. Es gibt aber nur eine Schreibweise!! Und deshalb bleibt es bei der Überflüssigkeit der Zeile 4 und 6.

void Order1()
{
   double SL = Ask - SL*PipValue*Point;
   if (SL == 0) SL = 0;
   double TP = Ask + TP*PipValue*Point;
   if (TP == 0) TP = 0;
......

Zitat
Meine Vermutung ist das die 4. und 6. Zeile doch gebraucht wird denn damit werden TP+SL gesetzt.
Würden diese beiden Zeilen durchlaufen werden, dann würde trotzdem kein SL und TP gesetzt werden, denn SL = 0 und TP = 0!!!

Zitat
if (false == false)
Was ist das?? false ist ein reserviertes Wort und kann als Variable nicht benutzt werden, also kann auch nicht abgefragt werden ob false == false ist.

Das beste ist, Du hängst mal den ganzen Code ran.

traderdoc
Pokerregel: "Auch bei dem Anschein eines sicheren Gewinnes, muss man ablassen können."

Forexfabrik

Re: Minimaler SL Wert = 7 ? ActivTrades
« Antwort #9 am: November 16, 2011, 23:53:01 pm »



 

Ähnliche Themen

  Betreff / Begonnen von Antworten Letzter Beitrag
Activtrades

Begonnen von matsf « 1 2 3 4 5 » Broker

65 Antworten
10737 Aufrufe
Letzter Beitrag September 06, 2011, 14:08:59 pm
von pingipong
9 Antworten
1206 Aufrufe
Letzter Beitrag Oktober 07, 2010, 14:47:16 pm
von artificial
30 Antworten
2184 Aufrufe
Letzter Beitrag September 15, 2010, 16:43:35 pm
von stony
10 Antworten
936 Aufrufe
Letzter Beitrag März 10, 2011, 11:51:23 am
von Icemaan
15 Antworten
1821 Aufrufe
Letzter Beitrag Juli 23, 2011, 09:31:44 am
von toertchen
10 Antworten
381 Aufrufe
Letzter Beitrag November 25, 2011, 15:00:29 pm
von Covolt
8 Antworten
298 Aufrufe
Letzter Beitrag Januar 16, 2012, 18:49:34 pm
von Der-Sucher
15 Antworten
531 Aufrufe
Letzter Beitrag April 05, 2012, 17:55:52 pm
von SP4FF


ChartTec´s World Topsites