- Sākumlapa
- Kopiena
- Programmēšana
- Free Indicator Opportunity!!!
Edit Your Comment
Free Indicator Opportunity!!!
Biedrs kopš
1 ieraksti
Jun 28, 2020 at 00:24
(labots Jun 28, 2020 at 00:31)
Biedrs kopš
1 ieraksti
I will code an indicator you want for free. Mail me @ my PM. Thank you..
Biedrs kopš
9 ieraksti
Jul 30, 2020 at 14:23
Biedrs kopš
9 ieraksti
I am looking for a time based volume indicator for MT4 platform.
Time based in terms of historical volume at specific times in the past relative to the current volume. An example the volume on a 15 minute chart now as compared to the same 15 minute period over the last month or two.
The idea I have is to take the mean of the set of 15 minute historical time frames and then compare the current volume to the historical volume for the 15 minute time frame. The concept is to determine whether the current volume is greater or less than the historical volume during the same time frame.
Any help would be greatly appreciated.
Time based in terms of historical volume at specific times in the past relative to the current volume. An example the volume on a 15 minute chart now as compared to the same 15 minute period over the last month or two.
The idea I have is to take the mean of the set of 15 minute historical time frames and then compare the current volume to the historical volume for the 15 minute time frame. The concept is to determine whether the current volume is greater or less than the historical volume during the same time frame.
Any help would be greatly appreciated.
Biedrs kopš
18 ieraksti
Aug 16, 2020 at 16:16
Biedrs kopš
18 ieraksti
Do you sell your strategies? Or is it important for you to test it and understand how well it allows you to earn?
Actually, I would like to see real indicators, which will show that it makes sense. And of course on a real account... Not on a demo...
Actually, I would like to see real indicators, which will show that it makes sense. And of course on a real account... Not on a demo...
Biedrs kopš
2 ieraksti
Aug 23, 2020 at 06:28
Biedrs kopš
2 ieraksti
nice sir , plz code for me indicator, [email protected]
Biedrs kopš
21 ieraksti
Aug 31, 2020 at 18:52
Biedrs kopš
21 ieraksti
There are so many such offers now and I'm kind of interested. But I can't figure out what kind of diversity is worthy of attention and money. So I would like you to share your observations and tell me what to choose and why.
Biedrs kopš
4 ieraksti
Oct 08, 2020 at 11:18
Biedrs kopš
4 ieraksti
Thanks for your kind gesture. For the time being, I don’t need an indicator but will definitely contact when I need one.
Biedrs kopš
416 ieraksti
Biedrs kopš
9 ieraksti
Oct 15, 2020 at 18:26
Biedrs kopš
9 ieraksti
I do not have a sample of the time based volume indicator.
I only had an idea, which consisted of developing a base line to judge the current volume by the volume at the same time of day over a specific time frame. I could then better judge whether the current volume is above or below average during the same time frame. So it really comes down to is the current bar's volume is above or below the average for the same bar at that specific time over the last 4 to 6 weeks.
I only had an idea, which consisted of developing a base line to judge the current volume by the volume at the same time of day over a specific time frame. I could then better judge whether the current volume is above or below average during the same time frame. So it really comes down to is the current bar's volume is above or below the average for the same bar at that specific time over the last 4 to 6 weeks.
Biedrs kopš
9 ieraksti
Oct 20, 2020 at 17:29
Biedrs kopš
9 ieraksti
Can you explain why there are vertical lines when this indicator is attached to the chart?
Here is the code:
#property strict
#property indicator_buffers 4
#property indicator_chart_window
input int InpATRperiod=14; // ATR Periods
input float InpRisk=1; // Risk Size %
input float InpSLfactor=1.5; // Stop Loss as a factor of ATR
input int InpFontSize=12; // Font size
input color InpColor=Red; // Color
input int InpBaseCorner=CORNER_RIGHT_UPPER; // Base Corner 0=UL,1=UR,2=LL,3=LR
input float InpFixedATR=0; // Fixed ATR points
string AccntC=AccountCurrency(); //Currency of Acount eg USD,GBP,EUR
string CounterC=StringSubstr(Symbol(),3,3); //The Count Currency eg GBPUSD is USD
string ExC=AccntC+CounterC; //Create the Pair for account eg USDGBP
double UpTicks[];
double DownTicks[];
double Diff[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
text_init(ChartID(),'textATR',5,InpFontSize,clrAliceBlue,InpFontSize);
text_init(ChartID(),'textBAL',5,(InpFontSize+2)*3,InpColor,InpFontSize);
text_init(ChartID(),'textRISK',5,(InpFontSize+2)*5,InpColor,InpFontSize);
text_init(ChartID(),'textlotsize',5,(InpFontSize+2)*7,White,InpFontSize);
text_init(ChartID(),'textBuyVolume',5,(InpFontSize+2)*9,clrForestGreen,InpFontSize);
text_init(ChartID(),'textSellVolume',5,(InpFontSize+2)*11,clrLightGoldenrod,InpFontSize);
text_init(ChartID(),'textDifference',5,(InpFontSize+2)*13,clrRed,InpFontSize);
SetIndexBuffer(0,UpTicks);
SetIndexBuffer(1,DownTicks);
SetIndexBuffer(2,Diff);
SetIndexLabel(0,'UpTicks');
SetIndexLabel(1,'DownTicks');
SetIndexLabel(2,'Difference');
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int i,counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
//----
for(i=0; i<limit; i++)
{
UpTicks[i]=(Volume[i]+(Close[i]-Open[i])/Point)/2;
DownTicks[i]=Volume[i]-UpTicks[i];
Diff[i]=UpTicks[i]-DownTicks[i];
}
//---
double ExCRate=1; //Assume Account is same as counter so ExCRate=1
AccntC=AccountCurrency(); //Currency of Acount eg USD,GBP,EUR
CounterC=StringSubstr(Symbol(),3,3); //The Count Currency eg GBPUSD is USD
ExC=AccntC+CounterC; //Create the Pair for account eg USDGBP
if(AccntC!=CounterC)
ExCRate= MarketInfo(ExC,MODE_ASK); //Get the correct FX rate for the Account to Counter conversion
if(ExCRate ==0) ExCRate=1.0;
double ATRPoints=iATR(NULL,0,InpATRperiod,0); //Get the ATR in points to calc SL and TP
double riskVAccntC=AccountEquity()*(InpRisk/100);
double riskvalue=(ExCRate/1)*riskVAccntC; //Risk in Account Currency
double slpoints=(ATRPoints*InpSLfactor); //Risk in Counter Currency
double riskperpoint=(riskvalue/slpoints)*Point;
double lotSize=riskperpoint; //Risk in currency per point
int pipMult=10000;
if(CounterC=='JPY') {
lotSize=riskperpoint/100;
pipMult=100;
}
double ATRpips=MathCeil(pipMult*ATRPoints);
ObjectSetString(ChartID(),'textATR',OBJPROP_TEXT,StringFormat('ATR(%.0f):%.0f %s', InpATRperiod,ATRpips,'pips'));
ObjectSetString(ChartID(),'textBAL',OBJPROP_TEXT,StringFormat('Equity:%.2f%s',AccountEquity(),AccntC));
ObjectSetString(ChartID(),'textRISK',OBJPROP_TEXT,StringFormat('Risk %.1f%%:%.0f %s',InpRisk,riskVAccntC,AccntC));
ObjectSetString(ChartID(),'textlotsize',OBJPROP_TEXT,StringFormat('Lot Size At 1.5 Of ATR :%.2f',lotSize));
//ObjectSetString(ChartID(),'textBuyVolume',OBJPROP_TEXT,StringFormat('Buy Volume:%.2f',UpTicks[0]));
ObjectSetString(ChartID(),'textBuyVolume',OBJPROP_TEXT,StringFormat('Buy Volume:%.2f',UpTicks[0]));
ObjectSetString(ChartID(),'textSellVolume',OBJPROP_TEXT,StringFormat('Sell Volume:%.2f',DownTicks[0]));
ObjectSetString(ChartID(),'textDifference',OBJPROP_TEXT,StringFormat('Difference:%.2f',Diff[0]));
//--- forced chart redraw
ChartRedraw(ChartID());
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ObjectDelete('textATR');
ObjectDelete('textBAL');
ObjectDelete('textRISK');
ObjectDelete('textlotsize');
ObjectDelete('textBuyVolume');
ObjectDelete('textSellVolume');
}
//Function to create a text field in the main Window
// Example call --- text_init(ChartID(),'textATR',1000,30,clrRed,12);
int text_init(const long current_chart_id,const string obj_label,const int x_dist,const int y_dist,const int text_color,const int font_size)
{
//--- creating label object (it does not have time/price coordinates)
if(!ObjectCreate(current_chart_id,obj_label,OBJ_LABEL,0,0,0))
{
Print('Error: can't create label! code #',GetLastError());
return(0);
}
//--- set distance property
ObjectSet(obj_label,OBJPROP_CORNER,InpBaseCorner);
ObjectSet(obj_label,OBJPROP_XDISTANCE,x_dist);
ObjectSet(obj_label,OBJPROP_YDISTANCE,y_dist);
ObjectSetInteger(current_chart_id,obj_label,OBJPROP_COLOR,text_color);
ObjectSet(obj_label,OBJPROP_FONTSIZE,font_size);
return(0);
}
//+------------------------------------------------------------------+
Here is the code:
#property strict
#property indicator_buffers 4
#property indicator_chart_window
input int InpATRperiod=14; // ATR Periods
input float InpRisk=1; // Risk Size %
input float InpSLfactor=1.5; // Stop Loss as a factor of ATR
input int InpFontSize=12; // Font size
input color InpColor=Red; // Color
input int InpBaseCorner=CORNER_RIGHT_UPPER; // Base Corner 0=UL,1=UR,2=LL,3=LR
input float InpFixedATR=0; // Fixed ATR points
string AccntC=AccountCurrency(); //Currency of Acount eg USD,GBP,EUR
string CounterC=StringSubstr(Symbol(),3,3); //The Count Currency eg GBPUSD is USD
string ExC=AccntC+CounterC; //Create the Pair for account eg USDGBP
double UpTicks[];
double DownTicks[];
double Diff[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
text_init(ChartID(),'textATR',5,InpFontSize,clrAliceBlue,InpFontSize);
text_init(ChartID(),'textBAL',5,(InpFontSize+2)*3,InpColor,InpFontSize);
text_init(ChartID(),'textRISK',5,(InpFontSize+2)*5,InpColor,InpFontSize);
text_init(ChartID(),'textlotsize',5,(InpFontSize+2)*7,White,InpFontSize);
text_init(ChartID(),'textBuyVolume',5,(InpFontSize+2)*9,clrForestGreen,InpFontSize);
text_init(ChartID(),'textSellVolume',5,(InpFontSize+2)*11,clrLightGoldenrod,InpFontSize);
text_init(ChartID(),'textDifference',5,(InpFontSize+2)*13,clrRed,InpFontSize);
SetIndexBuffer(0,UpTicks);
SetIndexBuffer(1,DownTicks);
SetIndexBuffer(2,Diff);
SetIndexLabel(0,'UpTicks');
SetIndexLabel(1,'DownTicks');
SetIndexLabel(2,'Difference');
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int i,counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
//----
for(i=0; i<limit; i++)
{
UpTicks[i]=(Volume[i]+(Close[i]-Open[i])/Point)/2;
DownTicks[i]=Volume[i]-UpTicks[i];
Diff[i]=UpTicks[i]-DownTicks[i];
}
//---
double ExCRate=1; //Assume Account is same as counter so ExCRate=1
AccntC=AccountCurrency(); //Currency of Acount eg USD,GBP,EUR
CounterC=StringSubstr(Symbol(),3,3); //The Count Currency eg GBPUSD is USD
ExC=AccntC+CounterC; //Create the Pair for account eg USDGBP
if(AccntC!=CounterC)
ExCRate= MarketInfo(ExC,MODE_ASK); //Get the correct FX rate for the Account to Counter conversion
if(ExCRate ==0) ExCRate=1.0;
double ATRPoints=iATR(NULL,0,InpATRperiod,0); //Get the ATR in points to calc SL and TP
double riskVAccntC=AccountEquity()*(InpRisk/100);
double riskvalue=(ExCRate/1)*riskVAccntC; //Risk in Account Currency
double slpoints=(ATRPoints*InpSLfactor); //Risk in Counter Currency
double riskperpoint=(riskvalue/slpoints)*Point;
double lotSize=riskperpoint; //Risk in currency per point
int pipMult=10000;
if(CounterC=='JPY') {
lotSize=riskperpoint/100;
pipMult=100;
}
double ATRpips=MathCeil(pipMult*ATRPoints);
ObjectSetString(ChartID(),'textATR',OBJPROP_TEXT,StringFormat('ATR(%.0f):%.0f %s', InpATRperiod,ATRpips,'pips'));
ObjectSetString(ChartID(),'textBAL',OBJPROP_TEXT,StringFormat('Equity:%.2f%s',AccountEquity(),AccntC));
ObjectSetString(ChartID(),'textRISK',OBJPROP_TEXT,StringFormat('Risk %.1f%%:%.0f %s',InpRisk,riskVAccntC,AccntC));
ObjectSetString(ChartID(),'textlotsize',OBJPROP_TEXT,StringFormat('Lot Size At 1.5 Of ATR :%.2f',lotSize));
//ObjectSetString(ChartID(),'textBuyVolume',OBJPROP_TEXT,StringFormat('Buy Volume:%.2f',UpTicks[0]));
ObjectSetString(ChartID(),'textBuyVolume',OBJPROP_TEXT,StringFormat('Buy Volume:%.2f',UpTicks[0]));
ObjectSetString(ChartID(),'textSellVolume',OBJPROP_TEXT,StringFormat('Sell Volume:%.2f',DownTicks[0]));
ObjectSetString(ChartID(),'textDifference',OBJPROP_TEXT,StringFormat('Difference:%.2f',Diff[0]));
//--- forced chart redraw
ChartRedraw(ChartID());
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ObjectDelete('textATR');
ObjectDelete('textBAL');
ObjectDelete('textRISK');
ObjectDelete('textlotsize');
ObjectDelete('textBuyVolume');
ObjectDelete('textSellVolume');
}
//Function to create a text field in the main Window
// Example call --- text_init(ChartID(),'textATR',1000,30,clrRed,12);
int text_init(const long current_chart_id,const string obj_label,const int x_dist,const int y_dist,const int text_color,const int font_size)
{
//--- creating label object (it does not have time/price coordinates)
if(!ObjectCreate(current_chart_id,obj_label,OBJ_LABEL,0,0,0))
{
Print('Error: can't create label! code #',GetLastError());
return(0);
}
//--- set distance property
ObjectSet(obj_label,OBJPROP_CORNER,InpBaseCorner);
ObjectSet(obj_label,OBJPROP_XDISTANCE,x_dist);
ObjectSet(obj_label,OBJPROP_YDISTANCE,y_dist);
ObjectSetInteger(current_chart_id,obj_label,OBJPROP_COLOR,text_color);
ObjectSet(obj_label,OBJPROP_FONTSIZE,font_size);
return(0);
}
//+------------------------------------------------------------------+
*Spams netiks pieļauts, un tā rezultātā var slēgt kontu.
Tip: Posting an image/youtube url will automatically embed it in your post!
Tip: Type the @ sign to auto complete a username participating in this discussion.