XAUUSD - falsche Losgröße auf einem GBP-Konto? - Seite 5

 
DomGilberto:
Vielen Dank :) - Ich werde mir das jetzt ansehen!

Ist FXCM Ihrer Meinung nach auch im Unrecht damit, wie ich den Tick Value sehe? Sie bestehen darauf, dass es völlig normal ist? Sie wissen nicht zufällig, warum sie es vermasseln, oder?
Ich weiß nicht, warum sie tun, was sie tun ... wenn Sie etwas Gewicht hinter Ihren Argumenten haben wollen, installieren Sie ein paar ihrer Konkurrenten und sehen Sie, wie sie den Tick-Wert eingestellt haben, dann sagen Sie ihnen, was ihre Konkurrenten tun ... und fragen Sie, ob sie immer noch "normal" sind ...
 
Oh, glauben Sie mir, ich habe etwa 5-6 verschiedene Makler überprüft! Ich bin so verärgert, weil ich bereits mit dem Handel bei ihnen begonnen habe. Ich hätte nicht gedacht, dass ausgerechnet FXCM so einen Mist bauen würde :(

Nur aus Neugier - ich habe den vorherigen Link gelesen, den Sie beigefügt haben; ist es nicht einfacher, es so zu machen? - Die Ausdrucke sind auch da. Ich habe das gerade auf mein Live-Konto bei FXCM übertragen... Es gibt mir eine ziemlich genaue TickValue jetzt auf der Grundlage von GBPUSD Tick-Wert und einfach * 0,10 ?

Das Einzige, was ich nicht weiß, ist, wie man einen Switch erstellt, wobei, wie Sie sagten, wenn der Broker die richtigen Daten hat, diese verwenden? (Können Sie mir die richtige Richtung weisen?)
   double risk_amount = AccountBalance( )* 2.00 / 100;
   double Lot_Step = MarketInfo(Symbol(), MODE_LOTSTEP);
   double ts = MarketInfo(Symbol(), MODE_TICKSIZE);
   double tv = MarketInfo(Symbol(), MODE_TICKVALUE);
   double minlot = MarketInfo(Symbol(), MODE_MINLOT);
   
   double GBPUSD = MarketInfo( "GBPUSD", MODE_TICKVALUE);
   
      double CustomTickValue = 0.10 * GBPUSD;
         Print(" Custom Tick Value is: ", 0.10, " * ", GBPUSD, " = ", CustomTickValue);

2013.11.12 11:32:33     Tick Value test XAUUSD,H1:  Custom Tick Value is: 0.1 * 0.6296 = 0.063

            
      double loss_for_1_lot = 25.25 / ( 0.10 * GBPUSD ) * ts ;
         Print(" loss_for_1_lot formula: ", 25.25, " / ", ts, " * (", CustomTickValue,") = ", loss_for_1_lot );

2013.11.12 11:32:33     Tick Value test XAUUSD,H1:  loss_for_1_lot formula: 25.25 / 0.01 * (0.063) = 4.0106

      
      double LotSize_Buy = MathFloor( risk_amount / loss_for_1_lot/ Lot_Step) * Lot_Step ;
         Print(" LotSize_Buy: ( ", risk_amount, " / ", loss_for_1_lot, " / ", Lot_Step, " ) * ", Lot_Step, " = ", LotSize_Buy); 

2013.11.12 11:32:33     Tick Value test XAUUSD,H1:  LotSize_Buy: ( 76.0598 / 4.0106 / 1 ) * 1 = 18
 
DomGilberto:
Oh, glauben Sie mir, ich habe etwa 5-6 verschiedene Makler überprüft! Ich bin so verärgert, weil ich bereits mit dem Handel bei ihnen begonnen habe. Von allen Brokern hätte ich nicht gedacht, dass FXCM so einen Mist bauen würde :(

Nur aus Neugierde - ich habe den Link gelesen, den Sie angehängt haben; ist es nicht einfacher, es so zu machen?

Das könnte/würde funktionieren (ich habe nicht genau genug nachgeschaut), wenn das Symbol XXXUSD und die Kontowährung GBP ist. Hätten Sie nicht lieber eine Funktion, die für ein Symbol wie XXXYYY und eine Kontowährung von ZZZ funktioniert? dann sind Sie fertig und müssen sich nicht mehr mit diesem Thema beschäftigen....

Das Einzige, was ich nicht weiß, ist, wie man einen Schalter einrichtet, bei dem, wie du gesagt hast, wenn der Broker die richtigen Daten hat, diese verwendet werden? (Können Sie mir die richtige Richtung weisen?)
Sie könnten einfach die Berechnung durchführen und den berechneten Wert mit dem MarketInfo()-Wert vergleichen, und wenn sich die Werte um mehr als 10%, 20% . . was immer Sie für einen ausreichend großen Fehler halten, verwenden Sie den berechneten Wert. Sie müssen nur sicher sein, dass die Werte, die Sie in Ihrer Berechnung verwenden, korrekt sind. Wenn Sie zu diesem Zweck den Tick-Wert für ein Symbol ermitteln, dessen Basiswährung (EURGBP) dieselbe ist wie Ihre Kontowährung (GBP), wird er 1,0 sein (5-stelliger Broker).
 
Guter Schrei! Ok, ich habe ein wenig herumgespielt - wenn Sie eine Minute Zeit haben, könnten Sie einen Blick darauf werfen, um zu sehen, was Sie denken? Ich weiß, dass ich es nicht sehr robust gemacht habe - ich suche lediglich nach einer vorübergehenden Lösung (ich weiß, dass das Wort "vorübergehend" ein gefährliches Wort ist!), die in der Zwischenzeit speziell mit FXCM stabil bleibt... Diese hier ist speziell für XAGUSD!(Entschuldigung, ich musste es aktualisieren, da ich das falsche gepostet habe!)

minLot ist immer entweder 50,00 für Silber oder 1,00 für Gold.
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 

  
   double ts = MarketInfo(Symbol(), MODE_TICKSIZE);
   double tv = MarketInfo(Symbol(), MODE_TICKVALUE);
   
   double GBPUSD_BID = MarketInfo( "GBPUSD", MODE_BID);
   double CustomTickValue;
   
   double EqualityTickValue = (( 0.10 / GBPUSD_BID * minLot ) - tv ) * 1000;
      Print(" EqualityTickValue formula is: ( ", 10, " / ", GBPUSD_BID, " * ", 50, " ) - ", tv, ") * ", 1000, " = ", EqualityTickValue);

2013.11.12 14:40:08     Tick Value test XAUUSD,H1:  EqualityTickValue formula is: ( 10 / 1.5911 * 50 ) - 0.01) * 1000 = 3132.401


      
   
   if( EqualityTickValue > 20.00 ) 
     {
      CustomTickValue = (0.10 / GBPUSD_BID  * minLot );
      Print(" CustomTickValue is custom: ", 10, " / ", GBPUSD_BID, " * ", 50.00, " = ", CustomTickValue); 

2013.11.12 14:40:08     Tick Value test XAUUSD,H1:  CustomTickValue is custom: 10 / 1.5911 * 50 = 3.1424

     }
   if( EqualityTickValue < 20.00)
     { 
      CustomTickValue = tv;
      Print(" CustomTickValue is MarketInfo: ", tv);



     } 
     
//----
   return(0);
  }
 
DomGilberto:
Guter Ruf! Ok, ich habe ein wenig herumgespielt - wenn Sie eine Minute Zeit haben, könnten Sie sich das mal ansehen, um zu sehen, was Sie davon halten? Ich weiß, dass ich es nicht sehr stabil gemacht habe - ich suche lediglich nach einer vorübergehenden Lösung (ich weiß, dass das Wort "vorübergehend" ein gefährliches Wort ist!), die in der Zwischenzeit speziell mit FXCM stabil bleibt... Diese hier ist speziell für XAGUSD!(Entschuldigung, ich musste es aktualisieren, da ich das falsche gepostet habe!)

minLot ist immer entweder 50,00 für Silber oder 1,00 für Gold.


Hier ist etwas allgemeiner...

Sie kann von verschiedenen Brokern auf andere Symbole erweitert werden.

Die wichtigsten Eingaben, die hier zu beachten sind, sind BidUSD und AskUSD. BidUSD ist der Dollarkurs der Margin-Währung. Angenommen, Ihr Handelssymbol wäre GBPJPY, dann wäre der BidUSD der Kurs von GBPUSD. Analog dazu wäre der AskUSD der USDJPY. Wenn eine der Margin- oder Gewinnwährungen USD ist, z. B. eine der Hauptwährungen, dann ist Ihr BidUSD==AskUSD==der aktuelle Kurs des TradeSymbols.

Was diese Funktion zurückgibt, ist der Gewinn/Verlust für das Halten eines Lots (1,0) des TradeSymbols über ein bestimmtes PriceDelta (eine der Eingaben).

//+------------------------------------------------------------------+
//|                                                       Profit.mqh |
//|                                                              ssn |
//+------------------------------------------------------------------+
#property copyright "ssn"

//#property version   "3.31"

double Profit(string TradeSymbol,double PriceDelta,double BidUSD,double AskUSD)
   {
      double _profit=0.0;
      
      if(StringFind(TradeSymbol,"TNOTE",2)>=0||
         StringFind(TradeSymbol,"aTND",0)>=2){
         _profit+=MarketInfo(TradeSymbol,MODE_LOTSIZE)*BidUSD;
         _profit*=PriceDelta;}
      
      else if(StringFind(TradeSymbol,"US500",0)>=0||
               StringFind(TradeSymbol,"a500",0)>=0||
               StringFind(TradeSymbol,"SPY",0)>=0){
         _profit+=MarketInfo(TradeSymbol,MODE_LOTSIZE)*BidUSD;
         _profit*=PriceDelta;}
      
      else if(StringFind(TradeSymbol,"XAG",0)>=0||StringFind(TradeSymbol,"XAU",0)>=0){
         _profit+=MarketInfo(TradeSymbol,MODE_LOTSIZE)*BidUSD;
         _profit*=PriceDelta; }
      
      else if(StringFind(TradeSymbol,"EUR",0)>=0||
         StringFind(TradeSymbol,"GBP",0)>=0||
         StringFind(TradeSymbol,"AUD",0)>=0||
         StringFind(TradeSymbol,"NZD",0)>=0){
         _profit+=MarketInfo(TradeSymbol,MODE_LOTSIZE)*BidUSD;
         if(StringFind(TradeSymbol,"USD",0)>=0){ 
            _profit*=PriceDelta; }
         else if(StringFind(TradeSymbol,"USD",0)<0){
            if(StringFind(TradeSymbol,"GBP",0)>=0||
               StringFind(TradeSymbol,"AUD",0)>=0||
               StringFind(TradeSymbol,"NZD",0)>=0){
               _profit*=PriceDelta*AskUSD; }
            else if(StringFind(TradeSymbol,"CAD",0)>=0||
                  StringFind(TradeSymbol,"CHF",0)>=0||
                  StringFind(TradeSymbol,"JPY",0)>=0){
               _profit*=PriceDelta;
               if(AskUSD!=0.0) { _profit/=AskUSD; }
               else if(AskUSD==0.0) {
                  Print(" Ask's USD price is zero! ensure it's provided. ");
                  return(0.0); }}}}
      
      else if(StringFind(TradeSymbol,"USD",0)>=0){
         _profit = MarketInfo(TradeSymbol,MODE_LOTSIZE);
         if(StringFind(TradeSymbol,"CAD",0)>=0||
            StringFind(TradeSymbol,"CHF",0)>=0||
            StringFind(TradeSymbol,"JPY",0)>=0){
            _profit*=PriceDelta;
            if(AskUSD!=0.0) { _profit/=AskUSD; }
            else if(AskUSD==0.0) {
               Print(" Ask's USD price is zero! ensure it's provided. ");
               return(0.0); }}}
               
      else if( StringFind(TradeSymbol,"CAD",0)>=0||
               StringFind(TradeSymbol,"CHF",0)>=0){
         if(BidUSD!=0.0) { _profit = MarketInfo(TradeSymbol,MODE_LOTSIZE)/BidUSD; }
         else if(BidUSD==0.0) {
            Print(" Bid's USD price is zero! ensure it's provided. ");
            return(0.0); }
         _profit*=PriceDelta;
         if(AskUSD!=0.0) { _profit/=AskUSD; }
         else if(AskUSD==0.0) {
            Print(" Ask's USD price is zero! ensure it's provided. ");
            return(0.0);  }}
             
      return(_profit);
   }
 

Danke für deinen Beitrag, Kumpel - ich bin mir nicht ganz sicher, was ich davon mitnehme - ich werde es mir morgen genauer ansehen...