[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 356

 

un'altra domanda come aggiungere indicatori a MT4?


grazie

 
Garifyanov:

un'altra domanda come aggiungere indicatori a mt4?


grazie

La documentazione e il tutorial non aiutano?
 
artmedia70:
La documentazione e il libro di testo non aiutano?


Grazie, ora controllo.
 
Ciao, non riesco a trovare un indicatore che disegni linee orizzontali lunghe due giorni sull'alto, basso di una candela a tempo noto. Mi colpisca con un link o forse con un abbozzo di indicatore.
 

Potete per favore dirmi perché l'EA non fa trading. Mettilo in demo (sorride) - non funziona. Sembra che abbiano rimosso la funzione all'inizio che permette il trading solo durante i test.

extern double Lots=1.0;

extern int Begin=10;

extern inttern Lunghezza=4;

extern int EOD=24;

extern inttern Pips=5;

extern int StopLoss=50;

extern int BreakEven=30;

extern inttern TakeProfit=80;


//+------------------------------------------------------------------+

//| funzione di inizio esperto |

//+------------------------------------------------------------------+

int start()

{

//----

int i,Ticket,LastOrderTime,StartTime,EODTime,Bought=0,Sold=0;

doppio EntryLong,EntryShort,SLLong,SLShort,TPLong,TPShort;

//Impostazioni

se (Symbol()=="EURUSD"){

Inizio=10;

Lunghezza=4;

EOD=24;

Pips=5;

StopLoss=50;

BreakEven=30;

TakeProfit=80;

}

else if (Symbol()=="GBPUSD"){

Inizio=10;

Lunghezza=4;

EOD=24;

Pips=5;

StopLoss=70;

BreakEven=40;

TakeProfit=120;

}

else {

Inizio=10;

Lunghezza=4;

EOD=24;

Pips=5;

StopLoss=50;

BreakEven=30;

TakeProfit=80;

}


//Conta il tempo

se(Ora()>=Inizio-1)

{

StartTime= StrToTime(Begin+":00");

if(DayOfWeek()==5) EODTime = MathMin(StrToTime("22:55"),StrToTime(EOD+":00"));

else EODTime = StartTime+(EOD-Begin)*3600-60;

}

//Set ordini

if(CurTime()>= StartTime && CurTime()<StartTime+300){

//Determinare l'intervallo

EntryLong =High[Highest(NULL,0,MODE_HIGH,Length*60/Period(),0)]+(Pips+MarketInfo(Symbol(),MODE_SPREAD))*Point;

EntryShort =Low [Lowest (NULL,0,MODE_LOW, Length*60/Period(),0)]-Pips*Point;

SLLong =MathMax(EntryLong-StopLoss*Point,EntryShort);

SLShort =MathMin(EntryShort+StopLoss*Point,EntryLong);

TPLong =EntryLong+TakeProfit*Point;

TPShort =EntryShort-TakeProfit*Point;

//Controlla gli ordini

for (i=0;i<OrdersTotal();i++){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUY)) Comprato++;

if(Bought>1){ //più di 1 ordine di acquisto

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket();

}


if(OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELL)) Venduto++;

if(Venduto>1){ //più di 1 ordine di vendita

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());

}

}

if(Bought==0){ //nessun ordine di acquisto

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,EntryLong,3,SLLong,TPLong,NULL,0,0,Green);

if(Ticket<0 && GetLastError()==130)

Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SLLong,TPLong,NULL,0,0,Green);

GlobalVariableSet("LastOrderTime",OrderOpenTime())

}

if(Sold==0){ //nessun ordine di vendita

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

Ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,EntryShort,3,SLShort,TPShort,NULL,0,0,Green);

if(Ticket<0 && GetLastError()==130)

Ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SLShort,TPShort,NULL,0,0,Green);

GlobalVariableSet("LastOrderTime",OrderOpenTime())

}

}

//Gestire gli ordini aperti

for (i=0;i<OrdersTotal();i++){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

//uzavšenín pozic na konci dne

se(CurTime()>=EODTime){

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket());

if(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());

GlobalVariableSet("LastOrderTime",CurTime());

}

//muovere a BE se il profitto>BE

else {

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY){

if(High[0]-OrderOpenPrice()>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);

GlobalVariableSet("LastOrderTime",CurTime());

}

}

if(OrderSymbol()==Symbol() && OrderType()==OP_SELL){

if(OrderOpenPrice()-Low[0]>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);

GlobalVariableSet("LastOrderTime",CurTime());

}

}

}

}

//Reset delle variabili globali a EOD

se(CurTime()>=EODTime) GlobalVariablesDeleteAll();

ritorno(0);

}

//+------------------------------------------------------------------+

 
Buongiorno a tutti, ho installato MT4 FIFTYZNAK. l'indicatore iMA dà 4 cifre, ma come ottenere 5 cifre?
 
MK07:
Buon giorno a tutti. ho installato MT4 FIFTY-ZNAK. l'indicatore iMA dà 4 segni, ma come ricevere 5 segni? Per favore aiutatemi a capire.

Ha un valore con cinque cifre. Per vedere il suo valore, usate

stringa DoubleToStr( valore doppio , cifre int )

Converte un valore numerico in una stringa di testo contenente una rappresentazione di carattere di un numero in un formato di precisione specificato.

Parametri:


value - Valore in virgola mobile.

digits - Numero di cifre dopo il punto decimale (0-8).


Esempio:
  string value=DoubleToStr(1.28473418, 5);
  // содержимое строки value - "1.28473"
 
laveosa:

Romano ... È un piacere vederti. Provato, non funziona, non capisco cosa c'è che non va, visivamente c'è una storia per il periodo di cui sopra, ma quando si prova non c'è? :/

Premi F2 e scarica fino a perdere i sensi! ;))
 

Come indichi al programma che la barra ha toccato la media mobile? Non hai bisogno di un valore massimo o minimo, hai bisogno di mostrare un tocco.

 
Forexman77:

Come indichi al programma che la barra ha toccato la media mobile? Non hai bisogno di un valore massimo o minimo, hai bisogno di mostrare un tocco.

Il massimo (attuale) High[0] è sopra la MA, e di conseguenza il minimo (attuale) Low[0] è sotto la MA (come ho capito, stiamo parlando della 0a barra).