Ecco il codice per Expert Advisor che usa questo indicatore TrendToTrend_open
codice qui sotto
Domanda - perché il mio Expert Advisor imposta questo indicatore con un prezzo di chiusura?
//--- входные параметрыinputint LongTrend=14; // Период LongTrendinputint ShortTrend=7; // Период ShortTrendinputint EA_Magic=0; // Magic Number советникаinputdouble Lot=0.02; // Количество лотовinputdouble STR= 0.14;
inputdouble TR= 0.1;
inputdouble TP= 0.55;
//--- глобальные переменныеint TrendToTrend;
int TrendToTrendOpen;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- достаточно ли количество баров для работыif(Bars(_Symbol,_Period)<60) // общее количество баров на графике меньше 60?
{
Alert("На графике меньше 60 баров, советник не будет работать!!");
return(-1);
}
TrendToTrend=iCustom(_Symbol,0,"TrendToTrend",LongTrend,ShortTrend);
TrendToTrendOpen=iCustom(_Symbol,0,"TrendToTrend_open",LongTrend,ShortTrend);
if(TrendToTrend<0||TrendToTrendOpen<0)
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
return(-1);
}
return(0);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- освобождаем хэндлы индикаторовIndicatorRelease(TrendToTrend);
IndicatorRelease(TrendToTrendOpen);
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
staticdatetime Old_Time;
datetime New_Time[1];
bool IsNewBar=false;
// копируем время текущего бара в элемент New_Time[0]int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
if(copied>0) // ok, успешно скопировано
{
if(Old_Time!=New_Time[0]) // если старое время не равно
{
IsNewBar=true; // новый барif(MQL5InfoInteger(MQL5_DEBUGGING)) Print("Новый бар",New_Time[0],"старый бар",Old_Time);
Old_Time=New_Time[0]; // сохраняем время бара
}
}
else
{
Alert("Ошибка копирования времени, номер ошибки =",GetLastError());
ResetLastError();
return;
}
//--- советник должен проверять условия совершения новой торговой операции только при новом бареif(IsNewBar==false)
{
return;
}
//--- Имеем ли мы достаточное количество баров на графике для работыint Mybars=Bars(_Symbol,_Period);
if(Mybars<60) // если общее количество баров меньше 60
{
Alert("На графике менее 60 баров, советник работать не будет!!");
return;
}
return;
}
Puoi per favore indicarmi la risposta alla tua domanda?
Ho un EA con due strategie che aprono trade su principi diversi. Ha una posizione comune come risultato finale.
Un po' più tardi, ho bisogno di capire come ogni strategia ha contribuito alla posizione. Quindi, quale strategia (o due) ha aperto la posizione.
Come si fa?
Grazie!
Se il tuo EA ha la possibilità di disabilitare una delle strategie e puoi cambiare il numero magico nelle impostazioni. Allora dovresti aggiungere due EAs nel tuo account e disabilitare una delle strategie in ognuno di essi e impostare diversi numeri magici per le posizioni e poi usare i numeri magici nella storia per tracciare quale dà più profitto o perdita.
Kino: Se l'EA ha la possibilità di disabilitare una delle strategie e si può cambiare il numero magico nelle impostazioni. Poi metti due EAs sul conto e disabilita una delle strategie in ciascuno di essi e assegna diversi numeri magici per le posizioni, e poi traccia nella storia ciò che dà più o meno dai numeri magici.
Grazie per la risposta. Ho fatto attraverso variabili statiche che cambiano il loro valore se la posizione della strategia è aperta (alla chiusura e allo stop loss cambiano anche i valori). In generale questo funziona bene, ma capisco che dopo aver riavviato l'EA perderà i suoi ordini.
int BarsAmountPassed(datetime open_time)
{
datetime time_array[];
int n;
Print("inpupt time=",TimeToString(open_time));
CopyTime(_Symbol,_Period,open_time,TimeCurrent(),time_array);
n=ArraySize(time_array);
Print("number of elements in array=",n);
return(n);
}
Chiamare così, per esempio:
int bars;
bars=BarsAmountPassed(1365198000);
Print(__FUNCTION__+": Баров прошло с этого времени ",bars);
Ecco il codice per Expert Advisor che usa questo indicatore TrendToTrend_open
codice qui sotto
Domanda - perché il mio Expert Advisor imposta questo indicatore con un prezzo di chiusura?
Ciao!
Per favore, indicatemi dove leggere la risposta alla mia domanda.
Ho un EA con due strategie che aprono trade su principi diversi. Ha una posizione comune come risultato finale.
Un po' più tardi, ho bisogno di capire come ogni strategia ha contribuito alla posizione. Quindi, quale strategia (o due) ha aperto la posizione.
Come si fa?
Grazie!
Ciao!
Puoi per favore indicarmi la risposta alla tua domanda?
Ho un EA con due strategie che aprono trade su principi diversi. Ha una posizione comune come risultato finale.
Un po' più tardi, ho bisogno di capire come ogni strategia ha contribuito alla posizione. Quindi, quale strategia (o due) ha aperto la posizione.
Come si fa?
Grazie!
Se l'EA ha la possibilità di disabilitare una delle strategie e si può cambiare il numero magico nelle impostazioni. Poi metti due EAs sul conto e disabilita una delle strategie in ciascuno di essi e assegna diversi numeri magici per le posizioni, e poi traccia nella storia ciò che dà più o meno dai numeri magici.
Grazie per la risposta. Ho fatto attraverso variabili statiche che cambiano il loro valore se la posizione della strategia è aperta (alla chiusura e allo stop loss cambiano anche i valori). In generale questo funziona bene, ma capisco che dopo aver riavviato l'EA perderà i suoi ordini.
Perché il denaro non ticchetta?
Grazie, amico... lo terrò presente.
Ho dei computer nel seminterrato, ...., estraggo i vasi... facciamo qualcosa.
Non capisco perché la funzione restituisce 0:
Chiamare così, per esempio:
n scrive correttamente, ma restituisce 0.Non capisco perché la funzione restituisce 0:
Chiamare così, per esempio:
n scrive correttamente, ma restituisce 0.