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

 
first_may:
Pomeriggio. MT4 ha un indicatore di volumi, mostra il volume in tick o no?

Volume del segno di spunta
 
CLAIN:

La cosa interessante è che il deposito è sufficiente - ho una grande riserva lì.
Subito dopo l'apertura di una posizione, emettete un errore in Print() e vedetene il motivo.
 

Domanda.

Ho scritto un indicatore. Le principali funzioni Order e Account utilizzate sono Symbol() ovunque iClose iOpen. Ma per qualche ragione, l'indicatore funziona SOLO su EURUSD............ Ho provato altri strumenti si blocca ((.

L'essenza dell'indicatore: visualizza informazioni sul conto, fondi liberi, ko numero di lotti da aprire, quanto è aperto, il rapporto Profitto/Rischio in denaro, impostato SOLO se (OrderSymbol()!=Symbol()) continua;

Riesaminato il motivo 10-20 volte. Non capisco...((((

Grazie in anticipo

 
sergeev:

tick

Risulta che tutti gli indicatori in MT4 dal gruppo volume mostrano un volume in tick?
 
paladin80:
Subito dopo aver aperto una posizione, print() emette un errore e ne vede il motivo.


La cosa interessante è che non ci sono problemi sul tester. Dal 2000 ad oggi ha funzionato senza alcuno scarico.

il codice aiuterebbe?

//+------------------------------------------------------------------+ 
//| StMartin.mq4 | 
//| Sergey Kodolov | 
//| 84232676421@mail.ru | 
//+------------------------------------------------------------------+ 
#property copyright "Sergey Kodolov" 
#property link "84232676421@mail.ru" 

    extern int TP = 1000; 
    extern int TS = 1000; 
    extern double lots = 1.0; 

    double volumz; 
    int ticket,total; 
    int slip = 3; 
    int Magic = 7; 

 


//+------------------------------------------------------------------+ 
//| expert initialization function | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- 

        ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"First order",Magic,0,Yellow); //открываем первый ордер 
 
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 

//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert start function | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 

OrderOpenFunction(); 
StrahBuy();
StrahSell();

//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 

void OrderOpenFunction()
{
   OrderSelect(ticket,SELECT_BY_TICKET);
   if(OrderCloseTime()>0)
   {
      
      total = OrdersTotal();
      Comment("OrderCloseTime = ",OrderCloseTime()," ms");
      if(total < 1) 
      { 
         OrderSelect(ticket,SELECT_BY_TICKET); 
         volumz = OrderLots(); 
         Print("Orderlots = ", OrderLots());
         if(OrderType() == OP_BUY)
         {
            if(OrderClosePrice()-OrderOpenPrice()>0)
            {
               ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
            }
            if(OrderClosePrice()-OrderOpenPrice()<0)
            {
               double lot1 = volumz*2; 
               ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red); 
            }
         }
         if(OrderType() == OP_SELL)
         {
            if(OrderClosePrice()-OrderOpenPrice()<0)
            {
               ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
            }
            if(OrderClosePrice()-OrderOpenPrice()>0)
            {
               double lot2 = volumz*2; 
               ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
            }
         }
      }
   }    
}      
  
void StrahBuy()
{
   total = OrdersTotal();
   if(total<1)
   {
      OrderSelect(0,SELECT_BY_POS);
      if(OrderType() == OP_BUY)
      {
         if(OrderClosePrice()-OrderOpenPrice()>0)
         {
            ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
         }
         if(OrderClosePrice()-OrderOpenPrice()<0)
         {
            double lot1 = volumz*2; 
            ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red); 
         }
      }      
   }
}

void StrahSell()
{
   total = OrdersTotal();
   if(total<1)
   {
      OrderSelect(0,SELECT_BY_POS);
      if(OrderType() == OP_SELL)
      {
         if(OrderClosePrice()-OrderOpenPrice()<0)
         {
            ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
         }
         if(OrderClosePrice()-OrderOpenPrice()>0)
         {
            double lot2 = volumz*2; 
            ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
         }
      }
   }   
}

Voglio dire, ho una funzione principale qui e le altre due la duplicano soltanto. L'ho fatto come assicurazione, ma ancora non funziona.

 
CLAIN:


la cosa interessante è che non ci sono problemi sul tester. Funziona dal 2000 ad oggi senza scarichi.

forse il codice aiuterebbe?

Cioè ho una funzione principale qui e le altre due la duplicano soltanto. L'ha fatto per l'assicurazione, ma smette ancora di funzionare

Codice molto strano. Sono molto confuso dal fatto che si apre una posizione in inizializzazione e si cercano ordini senza operatore. Non ho mai visto niente del genere prima d'ora. Inserite Print () nel vostro codice. Credetemi, aiuta.
 
CLAIN:


La cosa interessante è che sul tester non ci sono problemi. Funziona dal 2000 ad oggi senza prosciugarsi.

il codice aiuterebbe?

Voglio dire, ho una funzione principale qui e le altre due la duplicano soltanto. L'ho fatto come assicurazione, ma smette ancora di funzionare.

Tester: stop loss #68 a 1,2887 (1,2885 / 1,2887)
16:56:31 2010.07.15 15:04 EURUSD,M30: Orderlots = 1
16:56:31 2010.07.15 15:04 Tester: non abbastanza soldi per comprare 2,00 EURUSD a 1,2887 sl: 1,1885 tp: 1,2905 [2010.07.15 15:04]
16:56:31 2010.07.15 15:04 Tester: PrevBalance: 1838.36, PrevPL: 0.00, PrevEquity 1838.36, PrevMargin: 0.00, NewMargin: 2577, FreeMargin: -738.84
16:56:31 2010.07.15 15:04 martin EURUSD,M30: errore OrderSend 134

Penso che TP=1000 e SL=1000 sia troppo anche se lotti=1.0))

Prova a mettere un lotto più piccolo e TP=1000 e penso che sarai felice.

 

PERSONE!!!!!!!!! Aiuto!!! Si prega di ribadire!!! DOMANDA: PERCHE' l'indicatore si apre in MT4 SOLO su EURUSD!!!!!!!!!!!!!!! Che mistero. Non c'è restrizione di coppia nell'indicatore, Symbol() è ovunque, le funzioni principali sul conto Order e Account. Quando rimuovo l'indicatore non funziona anche su un'altra coppia, o meglio MT4 si blocca completamente finché non lo taglio. Ho scritto l'indicatore da solo. Non riesco a capire questo comportamento con altre coppie. Dato che è un indicatore lungo, non voglio visualizzarlo. Ma vi assicuro che non c'è nulla di innaturale in esso per funzionare senza problemi SOLO su eurodollaro???????????????????????

PRO RISOLVERE IL PUZZLE)))))))))))))))))))))))))))))))) Non ho fortuna.................

Ecco un estratto delle funzioni utilizzate

++++++++++++++++++++++++++++++++++++ Codice di salto

//--- Cancellare gli oggetti totali
Del_commento("MN1 Trend");
Del_commento("W1 Trend");
Del_comment("D1 Trend");
Del_comment("H4 Trend");
Del_comment("H1 Trend");
Del_comment("ord .no: ");
Del_comment("ord .#: ");
//---
TRENDS("MN1 Trend",PERIOD_MN1, 1,86, 33, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 42);
TRENDS("Trend W1", PERIOD_W1, 1,111, 48, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);
TRENDS("D1 Trend", PERIOD_D1, 1,97, 48, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);
TRENDS("Trend H4", PERIOD_H4, 1,111, 62, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj,12);
TRENDS("H1 Trend", PERIOD_H1, 1,97, 62, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);

str=StringLen(AccountCompany());
se(str<=31) shf=31-str;
else
se(str>=31) shf=0;
Commen("NameCo",AccountCompany(), 1, shf, 40, "Times New Roman", color_Fon,7);
Commen("in",ABC v2, 1, 36, 51, "Times New Roman", color_Fon,11);
Commen("txt_symb",Symbol(), 1, 3, 64, "Times New Roman", color_Fon,16);

se(OffABC==true)
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);

se(OffABC==falso)
{
Commen("in+", "INC", 1, 7, 51, "Times New Roman", color_Profit,10);
int OneLot= MarketInfo(Symbol(),MODE_MARGINREQUIRED);
int TickValue= MarketInfo(Symbol(),MODE_TICKVALUE);

if(Digits==2) pips=100;
else
if(Digits==3) pips=1000;
else
if(Digits==4) pips=10000;
else
if(Digits==5) pips=100000;

se(!IsConnected())
{
ObjectDelete("in+");
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);
Commen("noconnect", "no connected", 1, 7, 85, "Times New Roman", color_Loss,14);
}
else
se(IsConnected())
{
ObjectDelete("off+");
ObjectDelete("noconnect");
Commen("in+", "INC", 1, 7, 51, "Times New Roman", color_Profit,10);
}

se(ValutaConto()=="RUB")
{
EQ_USD= AccountEquity()/iClose("USDRUB",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())/iClose("USDRUB",PERIOD_M1,0);
PRF_USD= AccountProfit()/iClose("USDRUB",PERIOD_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())/(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())/OneLot;
ObjectDelete("nodepo");
}
else
se(ValutaConto()=="RUR")
{
EQ_USD= AccountEquity()/iClose("USDRUR",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())/iClose("USDRUR",PERIOD_M1,0);
PRF_USD= AccountProfit()/iClose("USDRUR",PERIOD_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())/(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())/OneLot;
ObjectDelete("nodepo");
}
else
se(Valuta del conto()=="EUR")
{
EQ_USD= AccountEquity()*iClose("EURUSD",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())*iClose("EURUSD",PERIOD_M1,0);
PRF_USD= AccountProfit()*iClose("EURUSD",PERIOD_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())*(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())*OneLot;
ObjectDelete("nodepo");
}
else
se(Valuta del conto()=="USD")
{
EQ_USD= AccountEquity();
FreeMargin_USD= AccountFreeMargin()-AccountStopoutLevel();
PRF_USD= AccountProfit();
LOT_01= FreeMargin_USD/(OneLot/10);
LOT_1= FreeMargin_USD/OneLot;
ObjectDelete("nodepo");
}

if(IsConnected() && AccountCurrency()!="RUB" && AccountCurrency()!="RUR" && AccountCurrency()!="EUR" && AccountCurrency()!="USD")
{
ObjectDelete("in+");
ObjectDelete("noconnect");
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);
Commen("depo_symbl",AccountCurrency(), 1, 112, 85, "Times New Roman", color_Equity_Account,14);
Commen("nodepo",impraticabile",1, 7, 85, "Times New Roman",color_Free,14);
}
//---

if(Orders_OK==false) order=1;
else order=0;

se(OrdiniTotali()>=ordine)
{
for(int pos=OrdersTotal(); pos>=0; pos--)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()!=Symbol()) continua;
{
SUMM= SUMM+OrderLots();
SWAP=SWAP+OrderSwap();
COMMIS=COMMIS+OrderCommission();
OpenPrice=OpenPrice+OrderOpenPrice();

//--- //ORDINI DI EBAY
if(OrderType()==OP_BUY)
{
baylot= OrderLots();
if(baylot>=1 && baylot<99.0)
{
bSL1= bSL1+(OrderStopLoss());
bTP1= bTP1+(OrderTakeProfit());
bOPN1= bOPN1+(OrderOpenPrice();
se(bSL1>0) bsumL1=bsumL1+1;
se(bTP1>0) bsumP1=bsumP1+1;
se(bOPN1>0) bsumO1=bsumO1+1;
}
if(baylot>=0,1 && baylot<0,99)
{
bSL01= bSL01+(OrderStopLoss());
bTP01= bTP01+(OrderTakeProfit());
bOPN01= bOPN01+(OrderOpenPrice();
if(bSL01>0) bsumL01=bsumL01+1;
if(bTP01>0) bsumP01=bsumP01+1;
if(bOPN01>0) bsumO01=bsumO01+1;
}
} //OP_BUY

++++++++++++++++++++++++++++++++++++++++++++++++++ Пропуск кода

Funzione

void TRENDS(string name, int PER, int n, int X, int Y, color Lab_Trend_Bull, color Lab_Trend_Bear, color Lab_Trend_Doj, int rsm)
{
int A,B,a,b,cod;
doppio Fup,Fdw;
doppio OPEN= iOpen(Symbol(),PER,1);
doppio CLOSE= iClose(Symbol(),PER,1);
double EMA21= iMA(Symbol(),PER,21,0,MODE_EMA,PRICE_CLOSE,1);
double EMA89= iMA(Symbol(),PER,89,0,MODE_EMA,PRICE_CLOSE,1);
stringa name2;
color_trend;
bool FLEAT=falso;

mentre(A<1)
{
double FUPPER= iFractals(Symbol(),PER,MODE_UPPER,a);
if(FUPPER>0) { Fup=FUPPER; A++; }
a++;
}
mentre(B<1)
{
double FLOWER= iFractals(Symbol(),PER,MODE_LOWER,b);
if(FLOWER>0) { Fdw=FLOWER; B++; }
b++;
}
if((CLOSE>=OPEN && CLOSE<Fup) || (CLOSE<=OPEN && CLOSE>Fdw))
FLEAT=true;

if(EMA21>EMA89 && FLEAT==true)
{ cod= 114; color_trend=Lab_Trend_Doj; name2="EMA21>eme89"; } // toro
else
if(EMA21<EMA89 && ((CLOSE>=OPEN && CLOSE>=Fup) || (CLOSE<=OPEN && CLOSE>=Fup))
{ cod=111; color_trend=Lab_Trend_Bull; name2="Fractal UPPER"; } // toro
else
if(EMA21>EMA89 && ((CLOSE>=OPEN && CLOSE>=Fup) || (CLOSE<=OPEN && CLOSE>=Fup))
{ cod=110; color_trend=Lab_Trend_Bull; name2="EMA21>ema89 + FRACTAL UPPER"; } // toro
else
if(EMA21<EMA89 && FLEAT==true)
{ cod= 113; color_trend=Lab_Trend_Doj; name2= "ema21<EMA89"; } // orso
else
if(EMA21>EMA89 && ((CLOSE<=OPEN && CLOSE<=Fdw) || (CLOSE>=OPEN && CLOSE<=Fdw))
{ cod=111; color_trend=Lab_Trend_Bear; name2="Fractal LOWER"; } // orso
else
if(EMA21<EMA89 && ((CLOSE<=OPEN && CLOSE<=Fdw) || (CLOSE>=OPEN && CLOSE<=Fdw))
{ cod= 110; color_trend=Lab_Trend_Bear; name2="ema21<EMA89 + FRACTAL LOWER"; } // orso
else
if(EMA21==EMA89 || FLEAT==true)
{ cod= 110; color_trend=Lab_Trend_Doj; name2= "ema21==ema89 || Fractal"; } // doj

name=name+""+name2;
se(PER==PERIODO_MN1) cod=111;
se(cod==110)
{ rsm=rsm+3; X=X-1; Y=Y-3; }

ObjectCreate(nome,OBJ_LABEL,0,0;)
ObjectSet(nome,OBJPROP_CORNER,n);
ObjectSet(nome,OBJPROP_XDISTANCE,X);
ObjectSet(nome, OBJPROP_YDISTANCE,Y);
ObjectSetText(name,CharToStr(cod), rsm, "Wingdings",color_trend);
}
void Commen(string name, string txt, int n, int X, int Y, string shrift, color clr, int rsm)
{
ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet(nome,OBJPROP_CORNER,n);
ObjectSet(nome,OBJPROP_XDISTANCE,X);
ObjectSet(nome, OBJPROP_YDISTANCE,Y);
ObjectSetText(name,txt, rsm,shrift,clr);
}

+++++++++++++++++++++++++++++++++++++++++++ e display

 
nlp2311:

...

+++++++++++++++++++++++++++++++++++++++++++ e uscita


"+++++++++++++++++++++++++++++++++++++++++++ e uscita sullo schermo"

E imparare a inserire il codice correttamente. Iltuo foglio non interessa a nessuno...

Leggete tutto qui.

 
Ho dimenticato la mia password in Metatrader, come posso crearne una nuova, chi posso contattare?