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!
[Eliminato]  

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