Spread-Handel in Meta Trader - Seite 5

 

Kurz und bündig:

1) Der durchschnittliche Spread wird berechnet

2) Der aktuelle Spread wird für LAST-Kurse berechnet

3) Wenn der aktuelle Spread über/unter dem durchschnittlichen statistischen Spread liegt, wird die Position eröffnet. (Niedriger/Höher wird je nach Marktlage - Contango oder Backwardation - bestimmt)

 
Wie berechnen Sie den durchschnittlichen Spread (wenn es kein Geheimnis ist)?
 
MetaDriver >> :

Ich bin mir nicht ganz sicher, was das Verbrechen ist. Hat sie sich mit einem Makler abgesprochen, um die Preise zu drücken? Oder nur mit ihrer Knete? Wenn mit ihrem eigenen Geld, sehe ich keine kriminellen Aktivitäten. Witzig, ja. Kriminell, nein. Und Ihr "großer Coup" ist nur neurotisches Moralisieren. Wenn Banken dies tun, denkt niemand daran, es als kriminell zu bezeichnen. :)


Lesen Sie es hier (ab Beitrag 310): http://www.procapital.ru/showthread.php?t=20648&page=21 und hier http://www.procapital.ru/showthread.php?t=21115

 
rid >> :
Wie berechnen Sie den durchschnittlichen Spread (wenn es kein Geheimnis ist)?


double CalculateAvarageSpread(string Symbol_1, string Symbol_2,
                              int Timeframe, int NBars)
{
   int k;
   double N = 0;
   double Sum = 0;
   for( k = 0; k < iBars( Symbol_1, Timeframe); k++)
   {
      if( N == NBars)
         break;

      int symb2Shift = iBarShift( Symbol_2, Timeframe,iTime( Symbol_1, Timeframe, k),true);
      if( symb2Shift != -1)
      {
         Sum += iClose( Symbol_1, Timeframe, k) - iClose( Symbol_2, Timeframe, symb2Shift);
         N++;
      }
   }
   double avarageSpread = Sum / N;
   return( avarageSpread);
}
 

Das ist der Standpunkt des Amtes und es ist verständlich, warum. Aber wenn man sich die Fakten ansieht, dann hat die Küche ein Angebot abgegeben, was nichts anderes ist als ein Angebot, ein Geschäft zu machen. Der Kunde ist mit diesem Angebot einverstanden. Danach die Küche zu beschuldigen, betrogen worden zu sein, und gleichzeitig zu argumentieren, dass "niemand, nicht einmal der brillanteste Händler, nachts mit Fleisch handelt" oder "wir nicht wussten, dass die Liquidität des Marktes nicht unendlich ist" - ist ein Kinderspiel.

Die Position der Küche sieht sehr schwach aus, ich bezweifle, dass sie den Fall vor Gericht bringen wollen.

 

Ja... Natürlich ist es nicht glatt.

Bei B. in Demo können Aufträge nur zu den Symbolpreisen GCZ9 und GCG0 eröffnet werden (Bid = Ask).

Im realen Handel wird die Order bei GCZ9#I und GCG0#I eröffnet (Bid != Ask).

Und der Spread ist durchaus angemessen, aber es gibt keinen Mega-Profit.


Es scheint also nur eine weitere Möglichkeit zu sein, schöne Demo-Bilanzen zu erstellen.

 
Fduch >> :

Ja... Natürlich ist es nicht glatt.

Bei B. in Demo können Aufträge nur zu den Preisen der Symbole GCZ9 und GCG0 eröffnet werden (Bid = Ask).

Im realen Handel wird die Order bei GCZ9#I und GCG0#I eröffnet (Bid != Ask).

Und der Spread ist durchaus angemessen, aber es gibt keinen Mega-Profit.


Es scheint also nur eine weitere Möglichkeit zu sein, schöne Demobilanzdiagramme zu erstellen.


Nicht ganz. ! Auf der Demo, genau wie auf der realen Positionen sind geöffnet / geschlossen zu Ask / Bid Ticker Preise #I (und überhaupt nicht LAST)!

Es ist im Tester - die Arbeit geht auf Preise LAST.

(Und in Tester B. wird die Streuung des Tickers #I nicht berücksichtigt, mit allem, was dazu gehört...)

Übrigens, vielen Dank für den Code der Durchschnittsspanne.

Es funktioniert. Ungefähr dasselbe wie in den Staaten auf S. 1.

Obwohl auf der realen, natürlich, ist unwahrscheinlich, dass so glatt sein. Durch einen Ausrutscher wird der gesamte erzielte Gewinn praktisch (bestenfalls) auf Null reduziert. Man muss nach den optimalen Instrumenten suchen. Glücklicherweise gibt es eine Fülle von Waren (Werkzeugen). Vielleicht gelingt es uns dann, etwas herauszubekommen.

Der EA kann aus offensichtlichen Gründen nicht im Tester ausgeführt werden. Daher müssen wir die Situation online überwachen. Dies ist keine schnelle Aufgabe...

 

Ich gehe weiter davon aus, dass die Berechnung der Spread-Abweichung und der Inputs nicht über LUST-Preise, sondern über MarketInfo(ticker #I,MODE_ASK) erfolgen soll;

Legen Sie außerdem eine Grenze für die Größe der aktuellen Spanne für jedes Symbol fest:

spr = MarketInfo(Ticker #I,MODE_ASK) -MarketInfo(Ticker #I,MODE_BID) ;

Und legen Sie auch die Zeitintervalle für die Arbeit fest. Um bei der Eröffnung einer Position nicht in illiquide Stunden mit einem großen Spread zu geraten.

Ich denke, dass es auf diese Weise möglich sein wird, den Gewinn (oder den Verlust) eines jeden Handels um 2-4 Ticks zu erhöhen.

 
Aufgrund der LAST-Preise kommt es vor, dass die Ticker des Hedges seit langem einen guten Gewinn aufweisen (ich sehe es mir gerade an - ich habe es in den Kommentar geschrieben), aber der Chart und das Terminal zeigen einen mageren Gewinn oder, schlimmer noch, sind aufgrund der Trägheit der LAST-Preise immer noch im Verlust!
Ich beobachte jetzt GBPUSD plus 6BH0, muss also dringend auf MarketInfo-Kurse umschalten (Ticker #I,....
 

Ich habe das Thema fast von Anfang an verfolgt.

Aber ich bin nicht ganz einverstanden damit, sowohl den Durchschnittswert zu ermitteln, als auch nicht ganz klar in der Frage der Öffnung, d.h. wann.

Ich habe den Spread (Unterschied) etwas anders beschrieben, er mag grob sein, aber er zeigt sich als EA sehr interessant.

Wenn Sie sich äußern können.

extern string Sum_1="GCG0";
extern string Sum_2="GCZ9";
double ARR[100,3];
double ARR_M[100];
int N=0;
int init()
{
ArrayInitialize( ARR,0);
ArrayInitialize( ARR_M,0);
}
int start()
  {
//----
double G0=MarketInfo( Sum_1,MODE_BID);
double Z9=MarketInfo( Sum_2,MODE_BID);
ARR[ N,0]= G0;
ARR[ N,1]= Z9;
ARR_M[ N]= G0- Z9;
N++;
if ( N>=100) N=0;
double SUM_0=0;
double SUM_1=0;
for (int r=0; r<100; r++)
{ 
SUM_0= SUM_0+( ARR[ r,0]- ARR[ r,1]);

}
double Aver= SUM_0/100;
double MAX=0;
double MIN=0;
for (int rr=0; rr<100; rr++)
{
if ( ARR_M[ rr]> MAX) MAX= ARR_M[ rr];
if ( ARR_M[ rr]< MIN) MIN= ARR_M[ rr];
}
Comment ("Aver  ",DoubleToStr( Aver,2),"   ", N,"   MAX  ",DoubleToStr( MAX,2)," MIN  ",DoubleToStr( MIN,2),"\n",
G0,"  ", Z9,"  ", G0- Z9);
//----
   return(0);
  }