Normalerweise implementiere ich diese Art von Funktionalität:
//+----------------------------------------------------------------------------+ //| Управление позициями | //+----------------------------------------------------------------------------+ void ManagePositions() { double sl=0, tp=0; int ms[2]; ArrayInitialize(ms, 0); GetTradeSignal(ms); if (ExistPositions("", -1, Magic)) { if (ms[1]>0) ClosePositions("", OP_BUY , Magic); if (ms[1]<0) ClosePositions("", OP_SELL, Magic); } else { if (ms[0]>0) { if (StopLoss>0) sl=Ask-StopLoss*Point; else sl=0; if (TakeProfit>0) tp=Ask+TakeProfit*Point; else tp=0; OpenPosition(OP_BUY, sl, tp, Magic); } if (ms[0]<0) { if (StopLoss>0) sl=Bid+StopLoss*Point; else sl=0; if (TakeProfit>0) tp=Bid-TakeProfit*Point; else tp=0; OpenPosition(OP_SELL, sl, tp, Magic); } } }Wie Sie sehen können, werden Funktionen geschrieben, die ganz bestimmte Aktionen ausführen. Und dann werden diese Funktionen so kombiniert, dass die gewünschte Taktik für die Arbeit mit Positionen umgesetzt wird.
Wahrscheinlich etwas mit Stochast_1, Stochast_0, alles andere ist in Ordnung
Nein..... Die Stochastik ist in Ordnung. (Arbeit an den Eröffnungspreisen)
double Stochast_0 =iStochastic(NULL,0,Stochastic_period,3,3,MODE_SMA,0,MODE_MAIN,0); double Stochast_1 =iStochastic(NULL,0,Stochastic_period,3,3,MODE_SMA,0,MODE_MAIN,1);
Habe ich Sie richtig verstanden? Die Kaufposition sollte geschlossen werden
OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
Und die Verkaufsposition muss geschlossen werden:
OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); ?Habe ich Sie richtig verstanden?
Im Großen und Ganzen haben Sie es richtig gemacht.
Ich will immer noch keine Positionen durch Stochastik schließen! Ich habe es richtig gemacht! Ich habe bei den externen Parametern einen Schalter eingebaut. Am Ende des Codes - separater Block für das Schließen von Positionen! Ich habe ein grünes Dreieck zum Schließen vorgesehen.
Die Taktik ist einfach: Überschreiten der durch langsame MAs gebildeten Kanalgrenzen mit Abweichungen nach oben und unten. Der Code ist sehr einfach. Nachfolgend finden Sie einen Expert Advisor.
хотел выложить весь код - не принимет сервер! - пишет больше допустимого//********* Закрытие позиций **************************************** if (AutoClose) { //----переменные для закрытия позиций ---- double Stochast_0 =iStochastic(NULL,0,Stochastic_period,3,3,MODE_SMA,0,MODE_MAIN,0); double Stochast_1 =iStochastic(NULL,0,Stochastic_period,3,3,MODE_SMA,0,MODE_MAIN,1); //---------------------------------------------------------------------- for (int v=0; v<OrdersTotal(); v++) { if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNum) { //----------------------------------------------------- if (OrderType() == OP_BUY) { if(Stochast_1>75 && Stochast_0<75) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); // закрываем позицию return(0); // выходим } } //-------------------------------------------------------- if (OrderType() == OP_SELL) { if(Stochast_1<25 && Stochast_0>25) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // закрываем позицию return(0); // выходим } } //------------------------------------------------------- } // Symbol() } // select } //total } //Close_
Kann jemand einen Blick darauf werfen? Und sag mir, was falsch ist....
Vielleicht sind bei der Eröffnung einer Bestellung die Gebote und Askchi ungenau eingestellt? Das hat mich schon immer verwirrt:
ticket=AuftragSenden(Symbol(),... ....Aber eines ist sicher: Anstelle von "if(Stochast_1>75 && Stochast_0<75)" würde ich "if(Stochast_1>75 && Stochast_0<=75)" machen.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Guten Abend, es ist ein Problem aufgetreten.
Ich muss eine Position schließen. Durch das Signal des Indikators. Außerdem muss ich in der Lage sein, die Position durch Stop Loss oder Take Profit zu schließen. (Nur für den Fall, dass das Blinkersignal zu spät kommt. - Dies geschieht häufig):
Anschließend lege ich fest, dass die offenen Positionen geschlossen werden sollen:
Die Positionen werden jedoch nach wie vor nur bei Stop-Loss oder Take-Profit geschlossen. (mit einer sehr seltenen - einzigen Ausnahme!)
Obwohl der Indikator auf dem Chart anzeigt, dass fast alle offenen Positionen nur durch das Signal des Indikators geschlossen werden sollten. Bitte sagen Sie mir, wo es einen Fehler geben könnte ... ?