Gemeinschaft des Fachwissens - Seite 10

 
Ich schlage vor, das folgende Thema zu diskutieren:
wie relevant ist der Handel auf mehrere Symbole und / oder Timeframes innerhalb eines Expert Advisor?

Ich bin derzeit sitzen und denken - sollte ich symbol_lib und Expert Advisor Vorlage, entworfen für diesen Zweck =)
und ich denke, es gibt keine solche Notwendigkeit ... Wenn ich auf verschiedenen Konten handle, muss ich immer noch mehrere Terminals bedienen, und wenn ich auf einem Konto handle, öffne ich einfach mehrere Fenster. Und es gäbe weniger Verwirrung, wie es scheint...

Es wird interessant sein, Meinungen und Argumente dazu zu hören ;)
 
Was den Trailing-Stop betrifft, können Sie Folgendes tun
int CurPrice_p=Bid/Point; //текущая цена в пунктах
int CurSLoss=OrderStopLoss( )/Point; //текущий стоплосс в пунктах
int TS=40; //значение трейлингстопа в пунктах
if(TS>=5)
{
    int TStep=2; //минимальный шаг трейлинг стопа
    if(TStep<1) TStep=1; //проверка шага трейлинга
    {
        if(MathAbs(CurPrice_p-CurSLOss)>=TS+TStep)
        {
            if(CurPrice_p>CurSLOss)
            {
                double NewSLoss=(CurPrice_p-TS)*Point;
                изменить уровень стоплосс ордера на новый
            }
            if(CurPrice_p>CurSLOss)
            {
                NewSLoss=(CurPrice_p+TS)*Point;
                изменить уровень стоплосс ордера на новый
            }
        }
    }
}
 
Was den Trailing-Stop betrifft, sollten wir vielleicht Folgendes tun

das ist eine Idee ... es ist mehr als ein Gedanke - es ist eine Idee ))
Am nächsten Tag werde ich die Fehler, die der Expert Advisor gesammelt hat, durchgehen und über die Implementierung von Handelsfunktionen nachdenken. Ich werde es nächste Woche mit euch teilen ;)


Ich schlage vor, das folgende Thema zu diskutieren:
Wie relevant ist es, mit mehreren Seals und/oder Timeframes innerhalb desselben Expert Advisors zu handeln?


Als Ergebnis der Abstimmung ( 1 dagegen (Komposter), 0 dafür, der Rest hat sich enthalten ) habe ich beschlossen, keinen Multisymbol-Handelsmüll in diesem Thread zu posten =)
Falls noch jemand Interesse hat, schreibt und teilt die Bibliothek ;-|
 
Das Thema wurde auf http://forum.viac.ru/viewtopic.php?t=2973 verschoben.
 
Hier ist ein kleines, aber meiner Meinung nach nützliches Tool zur visuellen Analyse von Positionen nach einem Backtest-Lauf. Vielleicht wird diese Idee für die Online-Analyse der Handelsgeschichte und das Parsing der Aussagen anderer Personen weiterentwickelt.
Zu verwenden:
1. Schreiben Sie diese Datei mit der Erweiterung mqh, Tracert.mqh in den Ordner experts\include\
2. Fügen Sie die Zeile #include <Tracert.mqh>
#property copyright "Rosh, conversed only" #property link
"http://*****************"
#include <stdlib.mqh> #include <Tracert.mqh> extern double TakeProfit = 200; extern double Lots = 0.1; extern double TrailingStop = 0; extern double StopLoss = 65;



3. Fügen Sie die Funktion SetTrace() ganz am Anfang in den start()-Block ein ;

int start() { int ticket, total,totalExpert; //------------------------------------------------------ //um den Code zu vereinfachen und zu beschleunigen, speichern wir die notwendigen // Indikatordaten in temporären Variablen SetTrace();



4. Nach dem EA-Lauf öffnen Sie die Datei und erhalten etwa Folgendes:



Der Utility-Code selbst:

//+------------------------------------------------------------------+
//|                                                      Tracert.mq4 |
//|                                                             Rosh |
//|                           http://forexsystems.ru/phpBB/index.php |
//+------------------------------------------------------------------+
#property copyright "Rosh"
#property link      "http://forexsystems.ru/phpBB/index.php"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
double tr_AOPLong,tr_AOPShort;
double tr_LongLots,tr_ShortLots;
int tr_CurrLongOrders,tr_CurrShortOrders;
int tr_Total,tr_Counter;
int tr_PrevLongOrders,tr_PrevShortOrders;
int tr_CurrTotalOpenedOrders,tr_PrevTotalOpenedOrders;
double tr_CurrBalance,tr_PrevCurrBalance;
color tr_ProfitColor=Lime, tr_LossColor=DeepPink,tr_LongAOPColor=Blue,tr_ShortAOPColor=Red, tr_CurrCloseColor;
int tr_CloseLabelArrow=108, tr_AOPLabelArrow=159;
bool tr_CloseLong,tr_CloseShort;
double tr_CloseLabelPrice;
int tr_CloseLabelShift=20;
int tr_CounterCloseLabel=0,tr_CounterAOPLabel=0;
int tr_Bars;

void SetTrace()
  {
//---- 
   if (IsTesting()&&(tr_Bars!=Bars))
      {
      tr_CloseLong=false;
            tr_CloseShort=false;
      tr_AOPLong=0.0;
      tr_AOPShort=0.0;
      tr_LongLots=0.0;
      tr_ShortLots=0.0;
      tr_CloseLabelShift=iATR(NULL,0,50,1)*3.0/10.0/Point;
      if (tr_CurrBalance==0.0)   
         {
         tr_CurrBalance=AccountBalance();
         tr_PrevCurrBalance=AccountBalance();
         }
//----------------Проверка открытых позиций ---------------------------
      tr_CurrLongOrders=0;
      tr_CurrShortOrders=0;
      tr_CurrTotalOpenedOrders=0;
      tr_Total=OrdersTotal();
      if (tr_Total>0)// есть открытые позиции
         {
         for (tr_Counter=0;tr_Counter<tr_Total;tr_Counter++)// подсчет открытых позиций
            {
            OrderSelect(tr_Counter, SELECT_BY_POS, MODE_TRADES);
            if (OrderType()==OP_BUY) 
               {
               tr_CurrLongOrders++;
               tr_AOPLong=tr_AOPLong+OrderLots()*OrderOpenPrice();
               tr_LongLots=tr_LongLots+OrderLots();
               }
            if (OrderType()==OP_SELL) 
               {
               tr_CurrShortOrders++;
               tr_AOPShort=tr_AOPShort+OrderLots()*OrderOpenPrice();
               tr_ShortLots=tr_ShortLots+OrderLots();
               }
            }// подсчет открытых позиций


            //---------------  усреднение ---------------------
            
         if (tr_CurrLongOrders>0) tr_AOPLong=tr_AOPLong/tr_LongLots;
         if (tr_CurrShortOrders>0)tr_AOPShort=tr_AOPShort/tr_ShortLots;
            
            //---------------  усреднение ---------------------
            
         if (tr_AOPLong>0.0)
            {
            ObjectCreate("AOP"+tr_CounterAOPLabel,OBJ_ARROW,0,Time[1],tr_AOPLong);// не совсем корректно, но пока пойдет
            ObjectSet("AOP"+tr_CounterAOPLabel,OBJPROP_ARROWCODE,tr_AOPLabelArrow);
            ObjectSet("AOP"+tr_CounterAOPLabel,OBJPROP_COLOR,tr_LongAOPColor);
            tr_CounterAOPLabel++;
            }

         if (tr_AOPShort>0.0)
            {
            ObjectCreate("AOP"+tr_CounterAOPLabel,OBJ_ARROW,0,Time[1],tr_AOPShort);// не совсем корректно, но пока пойдет
            ObjectSet("AOP"+tr_CounterAOPLabel,OBJPROP_ARROWCODE,tr_AOPLabelArrow);
            ObjectSet("AOP"+tr_CounterAOPLabel,OBJPROP_COLOR,tr_ShortAOPColor);
            tr_CounterAOPLabel++;
            }



//         Print("Long=",tr_CurrLongOrders,"  tr_AOPLong=",tr_AOPLong,"    ***   Short=",tr_CurrShortOrders,"   tr_AOPShort=",tr_AOPShort);            
         tr_CurrTotalOpenedOrders=tr_CurrLongOrders+tr_CurrShortOrders;
         if ((tr_CurrTotalOpenedOrders!=tr_PrevTotalOpenedOrders)||(tr_PrevLongOrders!=tr_CurrLongOrders)||(tr_PrevShortOrders!=tr_CurrShortOrders)) // изменилось колчиство ордеров в рынке
            {
            if (tr_PrevLongOrders>tr_CurrLongOrders) // изменилось число ордеров в Long
               {
               tr_CloseLong=true;            
               tr_CloseLabelPrice=High[1]+tr_CloseLabelShift*Point;
               }
            if (tr_PrevShortOrders>tr_CurrShortOrders) // изменилось число ордеров в Short
               {
               tr_CloseShort=true;            
               tr_CloseLabelPrice=Low[1]-tr_CloseLabelShift*Point;
               }
            tr_PrevLongOrders=tr_CurrLongOrders;
            tr_PrevShortOrders=tr_CurrShortOrders;
            tr_PrevTotalOpenedOrders=tr_CurrTotalOpenedOrders;
            }
         }// есть открытые позиции

//---------------- Проверка изменения Баланса

      tr_CurrBalance=AccountBalance();  
      if (tr_CurrBalance!=tr_PrevCurrBalance)// проверка изменения Balance
         {
         if (tr_CurrBalance-tr_PrevCurrBalance>0.0) tr_CurrCloseColor=tr_ProfitColor; else tr_CurrCloseColor=tr_LossColor;
         tr_PrevCurrBalance=tr_CurrBalance;
         //------------------ установка Метки закрытия --------------------
         ObjectCreate("Close"+tr_CounterCloseLabel,OBJ_ARROW,0,Time[1],tr_CloseLabelPrice);
         ObjectSet("Close"+tr_CounterCloseLabel,OBJPROP_ARROWCODE,tr_CloseLabelArrow);
         ObjectSet("Close"+tr_CounterCloseLabel,OBJPROP_COLOR,tr_CurrCloseColor);
         tr_CounterCloseLabel++;
         //------------------ установка Метки закрытия --------------------
         }// проверка изменения Balance   
      }//(IsTesting()) 
//----
   tr_Bars=Bars;
   return(0);
  }
//+------------------------------------------------------------------+
 
Aufgrund der Veröffentlichung des Testers (wenn auch etwas spät), poste ich trade_lib_tester und info_lib_tester. Weil ihre üblichen Versionen nicht getestet werden wollen =)))
Verwenden Sie dasselbe. Ändern Sie einfach die alten Namen in den Zeilen der Einschübe in die neuen Namen.

Dateien befinden sich unter http://forum.viac.ru/viewtopic.php?t=2973.
 
Lieber Komposter!

Könnten Sie alle diese Dateien, sowohl die neuesten als auch frühere, irgendwo auf viac oder alpari oder forexitems oder finlists veröffentlichen - ganz allgemein dort, wo Sie Dateien anhängen können. Es wäre auch leichter zu finden. Vielen Dank im Voraus.
 
Lieber Komposter! <br / translate="no">.
Könnten Sie bitte alle diese Dateien sowie aktuelle und frühere Dateien irgendwo auf viac oder alpari oder forexitems oder finlist einstellen - ganz allgemein dort, wo man Dateien anhängen kann. Es wäre auch leichter zu finden. Vielen Dank im Voraus.


http://forum.viac.ru/viewtopic.php?t=2973

Ich werde die Beschreibungen mit Anweisungen später verschieben...
 
trade_lib_tester&info_lib_tester.rar - Aktualisierung veröffentlicht - http://forum.viac.ru/viewtopic.php?t=2973


zum Testen <br / translate="no"> letzte Aktualisierung - 13.07.2005 14:09
Mehr als 10-fache Steigerung der Prüfgeschwindigkeit
 
Fertigstellung der Bibliotheken - http://forum.viac.ru/viewtopic.php?p=65111#65111

Es gibt eine Menge Veränderungen. Und zwar eine große.
Die Fehlertoleranz ist auf einem ganz neuen Niveau, die Informationen sind vollständiger, das Interface ist freundlicher ;) ...

Im Allgemeinen können wir sagen, dass es sich um eine absolut neue Bibliothek handelt =)
Sie können es gerne verwenden ;)