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

 
artmedia70:
Mit solchen Fragen sollten Sie in den 610. Build-Thread gehen - die Entwickler sind dort


Danke, weg.
 
Zolotai:

Ja, aber, weißt du. Ich müsste mich durch den Code von jemand anderem wühlen. Das verstehe ich nicht, und es kostet viel Zeit. Um es herauszufinden.

Beginnen Sie mit Tutorial, dann Dokumentation, usw. Es gibt keinen anderen Weg! Und Sie werden in der Lage sein, den Code anderer Leute zu verstehen und eine Menge von ihnen zu lernen! Hinweise lehren nicht, sie verderben!
 

Frage zur Visualisierung.

Ich erstelle einen schwebenden Auftrag mit einem Befehl wie diesem

OrderSend(Symbol(), OP_BUYLIMIT, lot, price, 3, 0, take_profit, 999, 999, 0, Blue);

Im Tester können wir alle Pfade als Pfeile sehen: Pending Order ------> Buy --------------> Take Profit Sale

Bei der Auftragserteilung erscheint jedoch nur der blaue Pfeil, und wir können in den Protokollen nur Vermutungen über den Kauf und die Gewinnmitnahme anstellen. Gibt es eine Möglichkeit, die Pfeile im echten Diagramm genauso zu sehen wie im Testprogramm?

 
Denis111:

Frage zur Visualisierung.

Ich erstelle einen schwebenden Auftrag mit einem Befehl der folgenden Art

OrderSend(Symbol(), OP_BUYLIMIT, lot, price, 3, 0, take_profit, 999, 999, 0, Blue);

Im Tester zeigen die Pfeile den gesamten Weg: Pending Order ------> Buy --------------> Sell at Take Profit

Im wirklichen Leben erscheint nur der blaue Pfeil, wenn ein Auftrag erteilt wird, und wir können in den Protokollen nur Vermutungen über den Kauf und die Gewinnmitnahme anstellen. Gibt es eine Möglichkeit, die Pfeile im realen Chart genauso zu sehen wie im Strategy Tester?


Öffnen Sie dazu ohne TP und geben Sie beim Ändern eine Farbe an, und Sie erhalten ein schließendes Dreieck mit einer gepunkteten Linie aus der Öffnung selbst!
 

Hallo, ich habe ein einfaches Skript geschrieben, um einen schwebenden Kaufauftrag zu eröffnen. Das Skript funktioniert erfolgreich auf einem Demokonto, aber auf einem echten Konto erzeugt es den Fehler: 133, was bedeutet, dass der Handel nicht erlaubt ist. Können Sie mir sagen, wo das Problem liegt? Was könnte der Grund für diesen Fehler sein?


extern int orderSize = 50;
extern int SL = 20;
extern int TP = 20;

int start()
{
double correctPoint = 0.0001;
double priceOpen = iOpen( Symbol(), PERIOD_M5, 0 ); //den Eröffnungskurs des aktuellen Fünf-Minuten-Balkens in die priceOpen-Variable schreiben

double priceBuy = priceOpen + (double)orderSize * correctPoint; //der Kurs, zu dem die schwebende Order platziert wird
double priceTP = priceBuy + (double)TP * correctPoint;
double priceSL = priceBuy - (double)SL * correctPoint;

while( !IsTradeAllowed() )
Sleep( 100 );
int codeError = OrderSend( Symbol(), OP_BUYSTOP, 1.5, priceBuy, 100, priceSL, priceTP );
if( codeError == -1 )
Alert ("BuyStop error: ", GetLastError() );

return(0);
}//±
 
Und hier stellt sich heraus, dass es Leute gibt, die das halbe Forum mit einer Frage vollstopfen.
 

Ich möchte eine einfache owl..... Skript zu machen, wenn die 1. Bestellung SL und TP gibt Fehler 130, und wo man Code mit Tralingstop einfügen???

//+------------------------------------------------------------------+
//| установка мышкой отложенных ордеров                              |
//|                               Copyright © 2012, Хлыстов Владимир |
//|                                                cmillion@narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Хлыстов Владимир"
#property link      "cmillion@narod.ru"
#property show_inputs

//--------------------------------------------------------------------
extern int     Stoploss          = 0,     //стоплосс ордеров
               Takeprofit        = 0;     //тейкпрофит ордеров
extern double  Lot               = 0.1;   //лот
extern int     Magic             = 0;     //уникальный номер ордеров этого советника
extern bool    comment           = true;  //выводить информацию на экран
//--------------------------------------------------------------------
int start()
{
   int n;
   double SL,TP;
   double Price = NormalizeDouble(WindowPriceOnDropped(),Digits);
   string txt=StringConcatenate("Скрипт выставления рыночного ордера, старт ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
   while(true)
   {
      RefreshRates();
      if(Price>Ask) 
      {
         if (Takeprofit!=0) TP = NormalizeDouble(Ask + Takeprofit * Point,Digits); else TP=0;
         if (Stoploss!=0)   SL = NormalizeDouble(Ask - Stoploss   * Point,Digits); else SL=0;
         if (OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),0,SL,TP,"StopOrders",Magic,0,CLR_NONE)!=-1)
              {txt = StringConcatenate(txt,"\nВыставлен BUY ",DoubleToStr(Ask,Digits));break;}
         else txt = StringConcatenate(txt,"\nОшибка ",GetLastError()," выставления BUY ");
      }
      if(Price<Bid) 
      {
         if (Takeprofit!=0) TP = NormalizeDouble(Bid - Takeprofit * Point,Digits); else TP=0;
         if (Stoploss!=0)   SL = NormalizeDouble(Bid + Stoploss   * Point,Digits); else SL=0;
         if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),0,SL,TP,"StopOrders",Magic,0,CLR_NONE)!=-1)
              {txt = StringConcatenate(txt,"\nВыставлен SELL ",DoubleToStr(Bid,Digits));break;}
         else txt = StringConcatenate(txt,"\nОшибка ",GetLastError()," выставления SELL ");
      }
      if (comment) Comment("Попытка ",n," ",txt);
      n++;
      if (n>10) break;
   }
   if (comment) Comment(txt,"\nСкрипт закончил свою работу ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
   return(0);
}
//--------------------------------------------------------------------
 
MyTHblu:

Ich möchte eine einfache owl..... Skript zu machen, wenn die 1. Bestellung SL und TP gibt Fehler 130, und wo man Code mit Tralingstop einfügen???


130 - Haltestellen sind falsch. Lesen Sie die Bedingungen Ihres Maklerunternehmens noch einmal sorgfältig durch und wiederholen Sie sie dann regelmäßig, damit Sie sie nicht vergessen. Warum mögt ihr alle Alpari so sehr, es ist wie Honig...


Der Code des Schleppnetzes kann in den Start kopiert werden, oder Sie können eine separate Funktion verwenden, wiederum vom Start aus.

 
evillive:

130 - die Haltestellen sind falsch. Lesen Sie die Handelsbedingungen Ihres Brokers noch einmal durch und lesen Sie sie regelmäßig, damit Sie sie nicht vergessen. Warum mögt ihr alle Alpari so sehr, es ist wie Honigtau...


Der Code des Schleppnetzes kann in den Start kopiert werden, oder Sie können eine separate Funktion verwenden, wiederum vom Start aus.


Da er diese Eule von CodeBase übernommen hat, kann er auch eine andere Eule mit Schleppnetz wählen. Und in Alps müssen Sie ohne SL und TP öffnen und sofort den Auftrag ändern, indem Sie sie platzieren. Warum machen sie sich nicht die Mühe, die Allgemeinen Geschäftsbedingungen des Brokers, die Forenregeln, die MT4-Hilfe und die Informationen zu lesen, die hundertmal hier auf der Website geschrieben und diskutiert wurden, und die Suche hier und auf Google zu benutzen? Bevor Sie grundlegende Fragen stellen?
 

wie man Codes verbindet....Es gibt einen Handelsstopp... Ich habe es nirgends eingefügt, vielleicht hat es einen Fehler, beim Kompilieren sagt es 'if' - Ausdrücke sind nicht auf eine globale scop erlaubt, es scheint zu bedeuten, einen Fehler vor if.... richtig?

extern bool UseTrailing = true;
extern int lMinProfit = 30;
extern int sMinProfit = 30;
extern int lTrailingStop = 15;
extern int sTrailingStop = 15;
extern int lTrailingStep = 5;
extern int sTrailingStep = 5;
//-----

if (UseTrailing) TrailingPositions();  

void TrailingPositions() 
{
  int cnt = OrdersTotal();

  for (int i=0; i<cnt; i++) {
        if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
        if (OrderSymbol() != Symbol()) continue;                

        if (OrderType() == OP_BUY) {
        if (Bid-OrderOpenPrice() > lMinProfit*Point) {
                if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
                OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, OrderTakeProfit(), 0, Blue);
                }
        }
        }

        if (OrderType() == OP_SELL) {
        if (OrderOpenPrice()-Ask > sMinProfit*Point) {
                if (OrderStopLoss() > Ask+(sTrailingStop+sTrailingStep-1)*Point || OrderStopLoss() == 0) {
                OrderModify(OrderTicket(), OrderOpenPrice(), Ask+sTrailingStop*Point, OrderTakeProfit(), 0, Blue);
                }
        }
        }
  }
  
}
Grund der Beschwerde: