Spread-Handel in Meta Trader - Seite 142

 

Freunde !!!! Ich habe mich entschlossen, mir selbst einen weiteren Anstoß zu geben und einen EA zu schreiben, der auf Limit-Orders basiert, und ich bin für jede Hilfe dankbar. Ich habe bereits Limit-Orders auf der Grundlage von Kims Funktionen eröffnet. Ich versuche derzeit, den Durchschnitt und die Abweichungen auf der Grundlage von Tick-Statistiken(https://www.mql5.com/ru/forum/125272)(da ich sie für zuverlässiger halte) für offene Positionen zu ermitteln. Wir müssen ein Modul implementieren, um Limit-Orders hinter den Preis zu verschieben und ein Modul, um Positionen zu schließen, wenn der Gewinn einen bestimmten Punkt erreicht.

 
Scorp1978 >>:

...... Надо будет реализовать модуль передвижки лимит ордера за ценой и модуль закрытия позиций при достижения профита определенного.

Hier ist der Code, um die Aufträge zu verschieben. Das Bier geht auf dich!

extern bool    Modify =True;
extern int     DistanceSet=14;//в пунктах
//-----------------------------------

if (Modify == true) {//если выключатель модификации включен
//если есть отложенный ордер и нет откр. одноименных позиций и
// расстояние от текущей цены превышает величину DistanceSet - модернизируем
// - т.е. подтягиваем к текущей цене
if(NumberOfOrders(NULL,OP_BUYLIMIT,Magic)>0 &&  NumberOfPositions(NULL,OP_BUY,Magic)<1){
  if( ExistOPNearMarket(NULL,OP_BUYLIMIT,Magic,DistanceSet)==0 ) { 
    for (int isl_= OrdersTotal()-1; isl_>=0; isl_-- )                  {
    if(OrderSelect(isl_,SELECT_BY_POS,MODE_TRADES))                 {
     if(OrderSymbol()==Symbol() )                                   {
      if(OrderType()==OP_BUYLIMIT && OrderMagicNumber()==Magic)      { 
      double pAsk=Ask-DistanceSet*Point;            
      if (sl!=0) double ldStop=pAsk-sl*Point;
      if (tp!=0) double ldTake=pAsk+tp*Point;         
     OrderModify(OrderTicket(), pAsk,ldStop,ldTake, 0, DarkGreen);
      Print("Modify OP_BUYLIMIT ");  Sleep(500);  RefreshRates(); }
      }}}}}
if(NumberOfOrders(NULL,OP_SELLLIMIT,Magic)>0 && NumberOfPositions(NULL,OP_SELL,Magic)<1){      
  if( ExistOPNearMarket(NULL,OP_SELLLIMIT,Magic,DistanceSet)==0 ) { 
   for (int isl= OrdersTotal()-1; isl>=0; isl-- )                  {
    if(OrderSelect(isl,SELECT_BY_POS,MODE_TRADES))                 {
     if(OrderSymbol()==Symbol() )                                   {
      if(OrderType()==OP_SELLLIMIT && OrderMagicNumber()==Magic)      { 
       double pBid=Bid+DistanceSet*Point;  
       if (sl!=0) double ldStop_=pBid+sl*Point;
       if (tp!=0) double ldTake_=pBid-tp*Point; 
     OrderModify(OrderTicket(), Bid+DistanceSet*Point,ldStop_,ldTake_, 0, DarkGreen);
      Print("Modify OP_SELLLIMIT");  Sleep(500);  RefreshRates(); }
      }}}}}            
}//выключатель модификации 
Wo, - Funktion ExistOPNearMarket()
//Diese Funktion gibt ein Flag für das Vorhandensein eines Auftrags oder einer Position in Marktnähe zurück
//(in einem bestimmten Abstand in Pips vom Markt). Eine genauere Auswahl der zu prüfenden Aufträge oder Positionen
Die zu überprüfenden Aufträge oder Positionen werden durch externe Parameter festgelegt:
//sy - Name des Instruments. Wenn dieser Parameter gesetzt ist, prüft die Funktion
prüft nur die //Ordnungen oder Positionen des angegebenen Symbols. "" oder NULL bedeutet
//aktuelles Symbol.
//op - Art der Handelsoperation, des Auftrags oder der Position. Gültige Werte: OP_BUY,
// OP_SELL, OP_BUYLIMIT, OP_SELLLIMIT, OP_BUYSTOP, OP_SELLSTOP oder -1.
//Der Standardwert -1 bedeutet eine beliebige Handelsoperation.
//mn - Auftrags- oder Positionskennung (MagicNumber). Standardwert -1
// - beliebiger Bezeichner.
//ds - Marktabstand in Pips. Der Standardwert ist 1000000.
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь                                                                |
//+----------------------------------------------------------------------------+
//| Версия : 19.02.2008 |
//| Описание : Возвращает флаг существования позиции или ордера около рынка |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" или NULL - текущий символ) |
//| op - торговая операция ( -1 - любая операция) |
//| mn - MagicNumber ( -1 - любой магик) |
//| ds - расстояние в пунктах от рынка ( 1000000 - по умолчанию) |
//+----------------------------------------------------------------------------+
bool ExistOPNearMarket(string sy="", int op=-1, int mn=-1, int ds=1000000) {
  int i, k=OrdersTotal(), ot;
  if (sy=="" || sy=="0") sy=Symbol();
  double p=MarketInfo(sy, MODE_POINT);
  if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
  for (i=0; i<k; i++) {
  if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
  ot=OrderType();
  if ((OrderSymbol()==sy) && (op<0 || ot==op)) {
  if (mn<0 || OrderMagicNumber()==mn) {
  if (ot==OP_BUY || ot==OP_BUYLIMIT || ot==OP_BUYSTOP) {
  if (MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())<ds*p) return(True);
  }
  if (ot==OP_SELL || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
  if (MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))<ds*p) return(True);
  }}}}} return(False); }

Und die Funktion NumberOfOrders() -
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Возвращает количество ордеров.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ko=0, ot;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot>1 && ot<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) ko++;
        }}}}  return(ko);}                        
 
rid


Vielen Dank, Crunch hat mir die Funktion gegeben, um den Durchschnitt der Ticks mit einer beliebigen Periode zu berechnen. Ich habe ihm auch ein Bier versprochen, ich werde gleich eine Kiste voll machen müssen :)))) Ich wünschte, ich wäre nicht zu betrunken vor Freude!!!!!

 
Ich habe heute einen Brief in der mt4 B-Post erhalten.
//-----------------------------
"Sehr geehrte Kunden, bitte beachten Sie, dass ab dem 14. April 2010 die Maßnahme gemäß Klausel 1.3.6. des Anhangs zum Abkommen BT-08 in Kraft treten wird.
1.3.6 Fixierung der Bilanz.
1.3.6.1 Die Feststellung der Handelsbilanz erfolgt täglich vor der Abgrenzung der Swaps.
Dieses Verfahren besteht in der automatischen Berechnung des finanziellen Ergebnisses aller durchgeführten Trades und dem Vergleich mit dem aktuellen Saldo des Handelskontos. Im Falle einer Diskrepanz wird der Saldo des Handelskontos um den Betrag der Diskrepanz korrigiert.
Von diesem Zeitpunkt an wird das Verfahren zur Feststellung des Gleichgewichts täglich durchgeführt.
Solltennach diesem Vorgang Unstimmigkeiten im Finanzergebnis des Handelskontos auftreten, können Sie sich an den technischen Support wenden: ....."
//------------------------------------------------
Ich verstehe nicht, was das sein soll?
Worin besteht der Unterschied in den Beträgen? Woher kommt sie in der Theorie?
Worum geht es hier?
И - ".... der Saldo des Handelskontos wird angepasst" - wie?

 

Ich fürchte, dass ich mich irre, aber die Klausel 1.3.6.1 der BT-08-Vereinbarung gibt dem Unternehmen eine weitere Möglichkeit, Kunden abzuschöpfen.
Woher können Diskrepanzen theoretisch kommen?
Es gibt zwei Möglichkeiten.
Erstens: Wenn Ihre Aufträge zu nicht marktgerechten Preisen ausgeführt wurden (Sie wissen schon, Spikes und andere Ausfälle), entscheidet das Unternehmen über das Schicksal dieser Aufträge und legt fest, was ein "nicht marktgerechter Preis" ist. Aber das kommt nicht sehr oft vor und ist auch nicht so schlimm.
Die zweite Option ist für den Händler wichtiger. Nehmen wir an, dass das Unternehmen zum Zeitpunkt der Festsetzung die Handelsspannen ausweiten wird. Das bedeutet, dass der Gesamtgewinn aller Ihrer offenen Positionen sinkt, und diese Differenz wird vom Guthaben abgezogen. Dieses Verfahren wird von dem Unternehmen am Ende eines jeden Handelstages durchgeführt und ist wie ein versteckter Swap... Kein Teufel, kein Teufel kann das Unternehmen davon abhalten, das zu tun... sie ist die CFD-Hostess...

Natürlich würde jeder gerne an die Integrität des Unternehmens glauben und daran, dass es nicht auf diese Weise betrügen wird... die Zeit wird es zeigen..., aber man muss ja irgendwo Geld für Rechtsstreitigkeiten in Übersee und teure Anwälte auftreiben können...

 
GEFEL >>:

.....
Второй вариант более важен для трейдера. Представим себе, что на момент фиксинга, компания будет раздвигать торговые спреды. Это значит, что по всем Вашим открытым позициям суммарный профит будет уменьшаться, и эта разница будет списываться с баланса... Такую процедуру компания будет проводить в конце каждого торгового дня, - и это будет похоже на скрытое свопирование........

Ich denke.....
Die Spreads weiten sich jeden Tag zum Tagesschluss aus (bei den Instrumenten, bei denen es eine Pause zwischen den Tagessitzungen gibt, d. h. bei fast allen Rohstoffen und Futures - für unsere Handelsmethodik).
Das ist nicht ganz klar. In dieser Situation würde das Eigenkapital (Fonds) vorübergehend abnehmen, nicht aber der Saldo.
Die Positionen bleiben offen und der Saldo kann sich in keiner Weise ändern.
Und wenn diese "ausgeweitete" Spanne (bei Eröffnung einer neuen Sitzung) von der Bilanz abgeschrieben wird, ist das schwer zu begreifen.
Ich muss jeden Abend eine DETAILLIERTE ERKLÄRUNG abspeichern und sie am Morgen akribisch mit einer "neuen Bilanz" vergleichen ...
Offensichtlich ja.

 
Ein Freund hat die Frage an den technischen Support gestellt.
Ich werde eine Antwort erhalten.
http://www.procapital.ru/showthread.php?p=649145#post649145
 
rid писал(а) >>
Ein Bekannter hat die Frage an den technischen Support gestellt.
Ich werde eine Antwort erhalten.
>> http://www.procapital.ru/showthread.php?p=649145#post649145


Ich habe auch die Antwort des technischen Supports gelesen und verstehe, dass nichts passieren wird (hoffentlich)

 

Saldo = Fonds + Gesamtgewinne aus offenen Positionen...

 

Und dieser rot hervorgehobene Satz in der Antwort stört Sie nicht ... Noch einmal: Abgeschlossene Geschäfte sind davon nicht betroffen, ihre Zahlen bleiben unverändert. Es wird nur der endgültige Kontostand geprüft.
Natürlich wollte niemand die bereits geschlossenen Stellen reparieren. Dies wäre ein Einbruch. Aber sie könnten in offene Stellen gelangen...
Ich habe keine wirkliche in B ... und ich irgendwie nicht egal, aber Sie wirklich raten, einen Ausgleich der Abend-und Morgenbilanz zu arrangieren ...