ivlyeva.tatyana6: Ich habe gestern eine Anfrage geschickt, mehr als ein Tag ist vergangen, und es ist still.
1. Gehen Sie zum nächsten Geldautomaten, stecken Sie die Karte ein, geben Sie den Pin-Code ein...
2. Gehen Sie zur nächsten Bank, nehmen Sie Blickkontakt auf und verfolgen Sie dann die Situation...
3. Gehen Sie auf den Markt. 3) Gehen Sie auf den Markt. Gehen Sie zur Bank. Abheben von Geldern (Sie können alle Gelder abheben, nicht nur Ihre eigenen...) ...
4. Wenn Sie Geld von MMM abheben müssen, dann hilft Ihnen auch der Tank nicht!
//+------------------------------------------------------------------+//| MACD Sample.mq4 |//| Copyright 2005-2014, MetaQuotes Software Corp. |//| http://www.mql4.com |//+------------------------------------------------------------------+#property copyright"2005-2014, MetaQuotes Software Corp."#property link"http://www.mql4.com"inputdouble TakeProfit =3160;
inputdouble Lots =0.5;
inputdouble TrailingStop =1040;
inputint OpenLevel =22;
inputint CloseLevel=77;
inputintPeriod =85;
inputint Period1 =57;
int LastBars=0;
externint Magic = 110725;
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnTick(void)
{
int cnt,ticket,total;
//---// initial data checks// it is important to make sure that the expert works with a normal// chart and the user did not make any mistakes setting external // variables (Lots, StopLoss, TakeProfit, // TrailingStop) in our case, we check TakeProfit// on a chart of less than 100 bars//---//--- Trade only if new bar has arrivedif(LastBars!=Bars) LastBars=Bars;
elsereturn(0);
if(Bars<100)
{
Print("bars less than 100");
return;
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return;
}
//--- to simplify the coding and speed up access data are put into internal variables
total=OrdersTotal();
if(total<1)
{
//--- no opened orders identifiedif(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money. Free Margin = ",AccountFreeMargin());
return;
}
//--- check for long position (BUY) possibilityif(iRSI(NULL,0,OpenLevel,PRICE_LOW,Period)>iRSI(NULL,0,CloseLevel,PRICE_HIGH,Period1))
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-TakeProfit*Point,Bid+TakeProfit*Point,"USDCADH4",Magic,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
}
elsePrint("Error opening BUY order : ",GetLastError());
return;
}
//--- check for short position (SELL) possibilityif(iRSI(NULL,0,OpenLevel,PRICE_LOW,Period1)<iRSI(NULL,0,CloseLevel,PRICE_HIGH,Period))
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+TakeProfit*Point,Ask-TakeProfit*Point,"USDCADH4",Magic,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice());
}
elsePrint("Error opening SELL order : ",GetLastError());
}
//--- exit from the "no opened orders" blockreturn;
}
//--- it is important to enter the market correctly, but it is more important to exit it correctly... for(cnt=0;cnt<total;cnt++)
{
if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
//--- long position is openedif(OrderType()==OP_BUY)
{
//--- should it be closed?if(iRSI(NULL,0,OpenLevel,PRICE_LOW,Period1)<iRSI(NULL,0,CloseLevel,PRICE_HIGH,Period))
{
//--- close order and exitif(!OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet))
Print("OrderClose error ",GetLastError());
return;
}
//--- check for trailing stopif(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
//--- modify order and exitif(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green))
Print("OrderModify error ",GetLastError());
return;
}
}
}
}
else// go to short position
{
//--- should it be closed?if(iRSI(NULL,0,OpenLevel,PRICE_LOW,Period)>iRSI(NULL,0,CloseLevel,PRICE_HIGH,Period1))
{
//--- close order and exitif(!OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet))
Print("OrderClose error ",GetLastError());
return;
}
//--- check for trailing stopif(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
//--- modify order and exitif(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red))
Print("OrderModify error ",GetLastError());
return;
}
}
}
}
}
}
//---
}
//+------------------------------------------------------------------+
Hallo. Bitte helfen Sie mir zu verstehen... Der Expert Advisor schließt die Trades anderer Leute oder öffnet seine eigenen nicht, wenn es Trades anderer Leute gibt.
Hallo. Bitte helfen Sie mir zu verstehen... Der Expert Advisor schließt die Trades anderer Leute oder öffnet seine eigenen nicht, wenn es Trades anderer Leute gibt.
Wenn es oben steht, schließt der Expert Advisor die manuell eröffneten Trades,
Wenn ich es so formuliere
if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==Symbol()&& OrderMagicNumber()==Magic) // check for symbol
Wenn es irgendwelche manuell geöffneten Geschäfte gibt, wird der Expert Advisor keine anderen Geschäfte schließen, aber er wird auch keine eigenen Geschäfte öffnen, wenn es irgendwelche manuell geöffneten Geschäfte gibt.
Wenn es oben steht, schließt der Expert Advisor die manuell eröffneten Trades,
Wenn ich es so formuliere
Wenn es irgendwelche manuell geöffneten Geschäfte gibt, wird der Expert Advisor keine anderen Geschäfte schließen, aber er wird auch keine eigenen Geschäfte öffnen, wenn es irgendwelche manuell geöffneten Geschäfte gibt.
müssen auch beim Öffnen durch einen Assistenten ausgewählt werden
Was ist das? Die Öffnung wird angezeigt. Wenn Sie mehrere Expert Advisors verwenden, gibt es kein Problem, sondern nur bei der manuellen Eröffnung einer Position auf dem Konto.
Sobald auf dem Konto manuell Geschäfte eröffnet werden, funktioniert der Expert Advisor nicht mehr.
Sobald ich dies im Code entferne, wird total=OrdersTotal();
Was ist das? Die Öffnung wird angezeigt. Wenn Sie mehrere Expert Advisors verwenden, gibt es kein Problem, sondern nur bei der manuellen Eröffnung einer Position auf dem Konto.
Sobald auf dem Konto manuell Geschäfte eröffnet werden, funktioniert der Expert Advisor nicht mehr.
Sobald ich dies im Code entferne, wird total=OrdersTotal();
if(gesamt<1)
EAs gehen geradeaus, eröffnen aber viele Trades.
Dies ist, was ich spreche - OrdersTotal() ist für alle Aufträge und Sie benötigen einen EA Auftrag
if(CountOrders("", -1, Magic)<1)
{
открытие ордеров
}
//+----------------------------------------------------------------------------+//| Подсчет ордеров |//+----------------------------------------------------------------------------+//| -1 - Все типы ордеров |//| 0 - ордера типа BUY |//| 1 - ордера типа SELL |//| 2 - ордера типа BUYLIMIT |//| 3 - ордера типа SELLLIMIT |//| 4 - ордера типа BUYSTOP |//| 5 - ордера типа SELLSTOP |//+----------------------------------------------------------------------------+int CountOrders(string symb="", int or_ty=-1, int magiс=-1)
{
int cnt=0;
if(symb=="0") symb=_Symbol;
for(int pos=OrdersTotal()-1;pos>=0;pos--)
{
if(OrderSelect(pos,SELECT_BY_POS)==true)
{
if((OrderSymbol()==symb || symb=="")&&(or_ty<0 || or_ty==OrderType()))
{
if(magiс<0 || OrderMagicNumber()==magiс) cnt++;
}
}
}
return(cnt);
}
Ich habe gestern eine Anfrage geschickt, mehr als ein Tag ist vergangen, und es ist still.
1. Gehen Sie zum nächsten Geldautomaten, stecken Sie die Karte ein, geben Sie den Pin-Code ein...
2. Gehen Sie zur nächsten Bank, nehmen Sie Blickkontakt auf und verfolgen Sie dann die Situation...
3. Gehen Sie auf den Markt. 3) Gehen Sie auf den Markt. Gehen Sie zur Bank. Abheben von Geldern (Sie können alle Gelder abheben, nicht nur Ihre eigenen...) ...
4. Wenn Sie Geld von MMM abheben müssen, dann hilft Ihnen auch der Tank nicht!
Und ernsthaft, das können Sie nicht!
Hallo. Bitte helfen Sie mir zu verstehen... Der Expert Advisor schließt die Trades anderer Leute oder öffnet seine eigenen nicht, wenn es Trades anderer Leute gibt.
Hallo. Bitte helfen Sie mir zu verstehen... Der Expert Advisor schließt die Trades anderer Leute oder öffnet seine eigenen nicht, wenn es Trades anderer Leute gibt.
Wenn es oben steht, schließt der Expert Advisor die manuell eröffneten Trades,
Wenn ich es so formuliere
Wenn es irgendwelche manuell geöffneten Geschäfte gibt, wird der Expert Advisor keine anderen Geschäfte schließen, aber er wird auch keine eigenen Geschäfte öffnen, wenn es irgendwelche manuell geöffneten Geschäfte gibt.
Wenn es oben steht, schließt der Expert Advisor die manuell eröffneten Trades,
Wenn ich es so formuliere
Wenn es irgendwelche manuell geöffneten Geschäfte gibt, wird der Expert Advisor keine anderen Geschäfte schließen, aber er wird auch keine eigenen Geschäfte öffnen, wenn es irgendwelche manuell geöffneten Geschäfte gibt.
Ich brauche auch eine Auswahl der magischen Zahl bei der Eröffnung
Was ist das? Die Öffnung wird angezeigt. Wenn Sie mehrere Expert Advisors verwenden, gibt es kein Problem, sondern nur bei der manuellen Eröffnung einer Position auf dem Konto.
Sobald auf dem Konto manuell Geschäfte eröffnet werden, funktioniert der Expert Advisor nicht mehr.
Sobald ich dies im Code entferne, wird total=OrdersTotal();
if(gesamt<1)
EAs gehen geradeaus, eröffnen aber viele Trades
Was ist das? Die Öffnung wird angezeigt. Wenn Sie mehrere Expert Advisors verwenden, gibt es kein Problem, sondern nur bei der manuellen Eröffnung einer Position auf dem Konto.
Sobald auf dem Konto manuell Geschäfte eröffnet werden, funktioniert der Expert Advisor nicht mehr.
Sobald ich dies im Code entferne, wird total=OrdersTotal();
if(gesamt<1)
EAs gehen geradeaus, eröffnen aber viele Trades.
Dies ist, was ich spreche - OrdersTotal() ist für alle Aufträge und Sie benötigen einen EA Auftrag
Das ist, was ich meine, OrdersTotal() ist alle Aufträge und Sie wollen EA Aufträge
Dies ist anstelle von
total=AuftragsSumme();
if(total<1) oder lassen wir das auch so?