Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 366

[Gelöscht]  
vadynik:
Ich versuche, meinen Auftrag um eine bestimmte Anzahl von Punkten vom Preis zu schließen, ich versuche, einen virtuellen Stopp zu machen...


Denn im Code fragen Sie nicht nach Marktpreisen, Sie zählen nur, also die Zeile:

((NormalizeDouble(priceopen,Digits) >=(NormalizeDouble(priceopen,Digits)-30*Point))||(NormalizeDouble(priceopen,Digits) <=(NormalizeDouble(priceopen,Digits) + 25*Point)))

ist immer wahr und der Körper des Operators wird ausgeführt.

 
vadynik:
Warum ein Auftrag schließt sofort auf den nächsten Tick, mein Kopf ist bereits kochen über, ich versuche, einen Auftrag zu schließen bei einer bestimmten Anzahl von Pips aus dem Preis, wie ein virtueller Stopp...

Drucken Sie den Wert aus

priceopen

...

[Gelöscht]  
vadynik:
Warum die Order sofort beim nächsten Tick geschlossen wird, geht mir schon im Kopf herum, weil ich versuche, sie um eine bestimmte Anzahl von Punkten vom Kurs entfernt zu schließen, eine Art virtueller Stopp...


Das wäre dasselbe, als wenn Sie die folgende Berechnung in dieser Zeile durchführen würden:

wenn ((100 >=100-30)||(100 <=100 + 25))

{

Print(100) ;

OrderClose(OrderTicket(),OrderLots(),Bid,50,Blue) ;

}

Verstehen Sie, was ich meine?)

 
Ekburg:


Das ist so, als ob Sie die folgende Berechnung in dieser Zeile durchführen würden:

wenn ((100 >=100-30)||(100 <=100 + 25))

{

Print(100) ;

OrderClose(OrderTicket(),OrderLots(),Bid,50,Blue) ;

}

Sehen Sie, was ich meine?)


Ja, die Logik ist fließend))
[Gelöscht]  
vadynik:

Ja, die Logik schwamm)))

Das wird es...))) Ich glaube, am Anfang haben das alle gemacht...))
 
Ekburg:

Das wird es...)))) anfangs, ich denke, jeder hat es schon erlebt))))


Ja, schwer anzufangen) Danke für die Hilfe

NormalizeDouble(priceopen-30*Point,Digits)>=Bid

So funktioniert es.

[Deleted]  
Können Sie mir sagen, wie ich in MLQ4 "einige Bedingungen, dann manuelle Bestätigung anfordern" schreiben kann?
 
Trader7777:
Können Sie mir sagen, wie ich in MLQ4 "einige Bedingungen, dann manuelle Bestätigung anfordern" schreiben kann?


Die Funktion MessageBox erstellt ein Nachrichtenfeld, zeigt es an und steuert es.
[Deleted]  

Danke, wir werden es studieren...)
 
Trader7777:

Vielen Dank, wir werden uns das ansehen...)

Beispiel

//+------------------------------------------------------------------+
//|                                         проверка(MessageBox).mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern int     stoploss    = 0,        //уровень выставления SL, если 0, то SL не выставляется
               takeprofit  = 0,        //уровень выставления TP, если 0, то TP не выставляется
               Magic       = 0;        //уникальный номер ордера
extern double  Lot         = 0.01;      //объем ордера
extern int     slippage    = 0;        //Максимально допустимое отклонение цены для рыночных ордеров

double SL,TP;
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
    if (MessageBox (" открыть ордер BUY??? ","Скрипт интересуется:",1)==1)
        {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;     
      OPENORDER ("Buy");
        } 

//----
   return(0);
  }
//+------------------------------------------------------------------+
void OPENORDER(string ord)
{
   int error,err;
   while (true)
   {  error=true;
      if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"BUY",Magic,0,Blue);
      if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"SELL",Magic,0,Red);
      if (error==-1) //неудачная покупка OK
      {  
         ShowERROR();
         err++;Sleep(2000);RefreshRates();
      }
      if (error || err >10) return;
   }
return;
}                  
//--------------------------------------------------------------------
void ShowERROR()
{
   int err=GetLastError();
   switch ( err )
   {                  
      case 1:   return;
      case 2:   Alert("Нет связи с торговым сервером ",Symbol());return;
      case 3:   Alert("Error неправильные параметры ",Symbol());return;
      case 130: Alert("Error близкие стопы   Ticket ",Symbol());return;
      case 134: Alert("Недостаточно денег   ",Symbol());return;
      case 146: Alert("Error Подсистема торговли занята ",Symbol());return;
      case 129: Alert("Error Неправильная цена ",Symbol());return;
      case 131: Alert("Error Неправильный объем ",Symbol());return;
      case 4200:Alert("Error Объект уже существует ",Symbol());return;
      default:  Alert("Error  " ,err," ",Symbol());return;
   }
}
//--------------------------------------------------------------------