[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 593

 
chief2000:

Beim Testen und Optimieren verwenden wir meist ein Währungspaar, erzielen einen akzeptablen Gewinn und einen Drawdown. Dann wiederholen wir dies für andere Währungen. Aber letztendlich muss ein Expert Advisor alle Währungen, an denen wir interessiert sind, über ein Handelskonto handeln. Sie sagen, dass der erwartete "Gesamt"-Rückschlag besser sein kann als der Rückschlag, der für jede einzelne Währung erzielt wird (ich habe diese Meinung schon mehrmals irgendwo gelesen). Aber es kann noch viel schlimmer werden, wenn mehrere Expert Advisors gleichzeitig eine Pechsträhne haben.

Ich bin auch an den Erfahrungen der Händler zu diesem Thema interessiert und möchte einen sehr interessanten Videoclip von Seaboss anbieten

http://taverno.livejournal.com/2010/04/10/ Total Equity Management in Seaboss ist für Omega implementiert, gibt es ähnliche Implementierungen für MT?

 
Guten Abend, liebe Forumsmitglieder! Ich habe am Nachmittag Kontakt aufgenommen, aber niemand hat geantwortet - ich brauche einen Indikator, der vertikale Stundenlinien im Terminalfenster anzeigt, sicherlich gibt es einen fertigen, raten Sie, wo man einen bekommt?
 
root:
Guten Abend, liebe Forumsmitglieder! Ich habe mich tagsüber mit ihnen in Verbindung gesetzt, aber niemand hat reagiert - ich brauche einen Indikator, der vertikale Stundenlinien im Terminalfenster anzeigt, sicherlich gibt es einen fertigen Indikator, können Sie mir sagen, wo ich ihn bekommen kann?

Ich weiß nicht, woher ich ihn bekommen kann. Der Grund, warum ich keine Antworten erhalten habe, ist wahrscheinlich, dass es einfach ist, einen solchen Indikator zu schreiben, und dass ihn wahrscheinlich niemand braucht.
 

vik-777:

Helfen Sie mir, dieses Problem zu lösen

eine Stichprobe aller geschlossenen Positionen zu machen

for (int i=0; i<OrdersHistoryTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

anschließend Filter nach magischer Zahl

wenn (BestellMagischeZahl()==12)

der Filter entspricht 3 Positionen, aber ich brauche nur die letzte, die durch eine magische Zahl abgeschlossen ist

Ich kann nicht herausfinden, wie ich nur den letzten Eintrag löschen kann?

Dankeschön

Kann mir jemand helfen, denn niemand hat sich
 
vik-777:
Kann mir jemand helfen, ist das noch niemandem aufgefallen?

OrderCloseTime(), um Ihnen zu helfen
 
Figar0:

OrderCloseTime(), um Ihnen zu helfen
Na und? Ich kann es verwenden, um die letzte geschlossene Bestellung zu finden und ich brauche die letzte geschlossene Bestellung mit einem Zauberer. sagen Sie mir, wie kann ich mehrere Bestellungen mit OrderCloseTime() vergleichen?
 
vik-777:
Ich kann die letzte geschlossene Bestellung finden und ich brauche die letzte geschlossene Bestellung mit einem Zauberer, sagen Sie mir, wie man einen Vergleich von mehreren Bestellungen durch OrderCloseTime() zu tun?

int LastClose =0;
int LastTicket;
for (int i=0; i<OrdersHistoryTotal(); i++)
{
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)
  {
    if (OrderMagicNumber()==12)
    {
      if (OrderCloseTime()>LastClose)
      {
        LastClose=OrderCloseTime();
        LastTicket=OrderTicket();
      }
    }
  }
}

if (LastClose>0)
{
  if(OrderSelect(LastTicket, SELECT_BY_TICKET, MODE_HISTORY)==true)
  {
  //// Тра-та-та
  }
}
Es ist zu grob und einfach. Es kann schöner und lakonischer sein...
 
Figar0:

Wurzelig-zahnig und auf der Stirn. Es könnte hübscher und prägnanter sein...
Vielen Dank, ich bin Ihnen sehr dankbar.
 
Craft:

Ich bin auch an den Erfahrungen der Händler zu diesem Thema interessiert und möchte einen sehr interessanten Videoclip von Seaboss empfehlen

http://taverno.livejournal.com/2010/04/10/ Seaboss hat Equity Management für Omega implementiert, gibt es ähnliche Implementierungen für MT?

Hier ist etwas, das ich gefunden habe (ich habe es noch nicht gelesen, aber es scheint zum Thema zu gehören)

https://www.mql5.com/ru/forum/125825

 

Vopshchem Ich nahm Wahrscheinlichkeitstheorie und statistisch, wenn die Marge der Bestellung wird in einem Radius von 50 Pips aus dem Preis, dann bei der Eröffnung der Bestellung mit einem Gewinn von 10 Pips ist leichter zu erreichen - wenn es auch ein Stop-Loss von 10 Pips (auch der Spread ist kein Problem) die Bewegung eines Trends ist eine große Sache ...

Hinzufügen eines Stop-Loss, unabhängig von StepStop

//+------------------------------------------------------------------+
//| Volfram.mq4 |
//| Vova-x@list.ru |
//| |
//+------------------------------------------------------------------+
#property copyright "Vova-x@list.ru"
#property link ""
//-----------------------------------------
extern TakeProfit=10;
extern int StepStop=45;
extern double Lots=0.01;
extern bool MoneyManagement=true;
extern inttern MarginPercent=10;
//-------------------------------------------
int level_sell_stop;
int level_buy_stop;

//----------------------------------------------------------
void init()
{
// int minstop=MarketInfo(Symbol(),MODE_STOPLEVEL);
//Drucken("levelbuy_stop: "+minstop;)
}
//-----------------------------------------------------------
void start()
{
if (!IsTradeAllowed()) return;
level_buy_stop=0;
level_sell_stop=0;
StepingStop();
StepingPendings();
if (TotalBuy ()==0 && TotalBuyStop ()==0) SetBuyStop ();
if (TotalSell()==0 && TotalSellStop()==0) SetSellStop();
Comment("Level Buy Stop=",level_buy_stop*Point,
"\n", "Level Sell Stop=",level_sell_stop*Point);
}
//---------------------------------------------------------------------------------------------
void StepingStop()
{
if (StepStop<1) return;
int ask, bid, open, stop, x;
Doppelter Verlust;
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol())
if (Auftragsart()==OP_BUY)
{
bid=MathRound(Bid/Point);
open=MathRound(OrderOpenPrice()/Point);
stop=MathRound(OrderStopLoss()/Point);
x=(Gebot-Eröffnung)/StepStop; x--; x*=StepStop;
level_sell_stop=open+x;
if (stop>=open+x)
Verlust=(offen+x)*Punkt;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE);
}
wenn (Auftragsart()==OP_SELL)
{
ask=MathRound(Ask/Point);
open=MathRound(OrderOpenPrice()/Point);
stop=MathRound(OrderStopLoss()/Point);
x=(open-ask)/StepStop; x--; x*=StepStop;
level_buy_stop=open-x;
if (stop>0 && stop<=open-x)
Verlust=(offen-x)*Punkt;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE);
}
}
}
//----------------------------------------------------------------------------
void StepingPendings()
{
int ask, bid, open;
doppelter Preis, Verlust, Gewinn;
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol())
wenn (Auftragsart()==OP_BUYSTOP)
{
if (level_buy_stop==0)
open=MathRound(OrderOpenPrice()/Point);
wenn (offen<=level_buy_stop)
price=level_buy_stop*Point;
Verlust=Preis-SchrittStopp*Punkt;
profit=0; if (TakeProfit>0) profit=price+TakeProfit*Point;
OrderModify(OrderTicket(),Preis,Verlust,Gewinn,0,CLR_NONE);
}
wenn (Auftragsart()==OP_SELLSTOP)
{
if (level_sell_stop==0)
open=MathRound(OrderOpenPrice()/Point);
wenn (offen>=level_sell_stop)
price=level_sell_stop*Point;
Verlust=Preis+StepStop*Punkt;
profit=0; if (TakeProfit>0) profit=price-TakeProfit*Point;
OrderModify(OrderTicket(),Preis,Verlust,Gewinn,0,CLR_NONE);
}
}
}
//-------------------------------------------------------------------
void SetBuyStop()
{
double lots=LotsCounting();
double price=Bid+StepStop*Point;
double loss=Preis-StepStop*Point;
double profit=0; if (TakeProfit>0) profit=Preis+TakeProfit*Point;
int ticket=OrderSend(Symbol(),OP_BUYSTOP,lots,price,0,loss,profit,"",0,0,CLR_NONE);
if (ticket<1) Print("Setze eine ausstehende Bestellung mit Fehler #",GetLastError()," ",(GetLastError());
}

void SetSellStop()
{
double lots=LotsCounting();
double price=Ask-StepStop*Point;
double loss=Preis+StepStop*Point;
double profit=0; if (TakeProfit>0) profit=price-TakeProfit*Point;
int ticket=OrderSend(Symbol(),OP_SELLSTOP,lots,price,0,loss,profit,"",0,0,CLR_NONE);
if (ticket<1) Print("Setze eine ausstehende Bestellung mit Fehler #",GetLastError()," ",(GetLastError());
}


int TotalBuy()
{
int count=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY) count++;
}
zurückgeben (count);
}

int TotalBuyStop()
{
int count=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUYSTOP) count++;
}
zurückgeben (count);
}

int TotalSell()
{
int count=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_SELL) count++;
}
zurückgeben (count);
}

int TotalSellStop()
{
int count=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_SELLSTOP) count++;
}
zurückgeben (count);
}

double LotsCounting()
{
Doppellose=Lose;
wenn (MoneyManagement)
{
double lotsize=MarketInfo(Symbol(),MODE_LOTSIZE);
double freemargin=AccountFreeMargin();
lots=0; if (lotsize>0) lots=NormalizeDouble((MarginPercent*freemargin/lotsize),1);
}
if (lots>10) lots=NormalizeDouble(lots,0);
wenn (Lose<0,01) Lose=0,01;
Rückgabe (Lose);
}


// Ende