[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
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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 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, ist das noch niemandem aufgefallen?
OrderCloseTime(), um Ihnen zu helfen
OrderCloseTime(), um Ihnen zu helfen
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?
Es ist zu grob und einfach. Es kann schöner und lakonischer sein...
Wurzelig-zahnig und auf der Stirn. Es könnte hübscher und prägnanter sein...
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