Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 515

 
artmedia70:
Con queste domande dovresti andare al thread della build 610th- gli sviluppatori sono lì


Grazie, andato.
 
Zolotai:

Sì, ma... Dovrei scavare nel codice di qualcun altro. Cosa che non capisco, e ci vuole un sacco di tempo Per capirlo.

Inizia con Tutorial, poi con Documentation, ecc. Non c'è altro modo! E sarete in grado di capire il codice degli altri e imparare molto da loro! I suggerimenti non insegnano, corrompono!
 

Domanda sulla visualizzazione.

Creo un ordine pendente con un comando come questo

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

Nel tester, possiamo vedere tutto il suo percorso come frecce: pending order ------> buy --------------> take profit sale

Tuttavia, solo la freccia blu appare quando si piazza un ordine e possiamo solo indovinare il buy e il take profit nei log. C'è un modo per vedere le frecce nel grafico reale allo stesso modo che nel tester?

 
Denis111:

Domanda sulla visualizzazione.

Creo un ordine pendente con un comando del seguente tipo

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

Nel tester, le frecce mostrano tutto il suo percorso: ordine pendente ------> comprare --------------> vendere a Take Profit

Nella vita reale, solo la freccia blu appare quando viene piazzato un ordine e possiamo solo indovinare il buy e il take profit nei log. C'è un modo per vedere le frecce nel grafico reale allo stesso modo che nello Strategy Tester?


Per farlo, aprite senza TP, e poi specificate anche un colore quando modificate, e avrete un triangolo di chiusura con una linea tratteggiata dall'apertura stessa!
 

Ciao, ho scritto un semplice script per aprire un ordine di acquisto in sospeso. Lo script funziona con successo su un conto demo, ma su un conto reale genera l'errore: 133, che significa che il trading non è permesso. Potresti dirmi qual è il problema? Quale può essere la ragione di questo errore?


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 ); //scrive il prezzo aperto della barra di cinque minuti corrente nella variabile priceOpen

double priceBuy = priceOpen + (double)orderSize * correctPoint; //il prezzo al quale l'ordine pendente è piazzato
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);
}//±
 
E qui si scopre che ci sono quelli che riempiono metà del forum con una sola domanda.
 

Voglio fare un semplice script owl..... quando il 1° ordine SL e TP dà errore 130, e dove inserire il codice con Tralingstop??

//+------------------------------------------------------------------+
//| установка мышкой отложенных ордеров                              |
//|                               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:

Voglio fare un semplice script owl..... quando il 1° ordine SL e TP dà errore 130, e dove inserire il codice con Tralingstop??


130 - le fermate sono sbagliate. Rileggete attentamente i termini della vostra società di intermediazione e poi rileggeteli regolarmente per non dimenticarli. Perché vi piace così tanto Alpari, è come il miele...


Il codice di trawl può essere copiato nell'inizio, o si può usare una funzione separata, di nuovo, dall'inizio.

 
evillive:

130 - le fermate sono sbagliate. Leggete ancora una volta le condizioni di trading del vostro broker e poi rileggetele regolarmente per non dimenticarle. Perché vi piace così tanto l'Alpari, è come il melone...


Il codice di trawl può essere copiato nell'inizio, o si può usare una funzione separata, di nuovo, dall'inizio.


Come ha preso questo gufo da CodeBase, può anche sceglierne un altro con trawl. E in Alps, devi aprire senza SL e TP e modificare immediatamente l'ordine mettendoli. Perché non si preoccupano di leggere i termini e le condizioni del broker, le regole del forum, la guida di MT4 e le informazioni scritte e discusse un centinaio di volte qui sul sito, usare la ricerca qui e su Google? Prima di fare domande di base?
 

come connettere i codici.... c'è uno stop al trading... Non l'ho inserito da nessuna parte, forse ha un errore, quando si compila dice 'if' - le espressioni non sono permesse su uno scop globale, sembra significare che un errore prima di if.... giusto?

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);
                }
        }
        }
  }
  
}