Sierra Charts

Discussion in 'Trading Software' started by cmk, Jul 7, 2005.

  1. cmk



    How many of you folks use SC with IB?

    I just signed up for the Demo account and so far I have been successful in getting no chart to show up.

    What I do not like so far is the inability to get historical data from the days activities, or from a fews days back, like you can get with IB charts. I have totally given up trying to do anything with IB charts as I always seem to have some sort of issue with them so I wanted to try SC as a cheap alternative. Is it possible to get intraday data for the past couple of days? The log says your broker does not support this, but you can get this same data with IBs chart software, so TWS obviously backfills to a point. I only need the day, and preferably the day before, I am not asking to backfill like 4 years or something obscene like that.

    So who uses these charts and likes them? I only really want to look at intrday fx futures candle charts with a couple of studies on them, some moving averages and things like that, nothing complex.

    That would be hot and sexy to get like 3 of them to open up when I start up SC, EUR/USD, Cable, and JPY/USD, those are the only three products I trade at the moment.

    We are talking front month GLOBEX futures here.

    Thank you kind sirs
  2. I do and have been for 18 months. Before that I had TS2000i and Quotetracker.

    Re getting chart setup - you should be able to - go to the sierrachart support board and have a look thru the topics. If you dont see your question then ask again. You get an answer in 1 or less business days.

    Yes, you can get daily, weekly and monthly data from your intraday activities. Again the question has recently been asked (and the questioner was happy with the result) on the support board.

    IB have just released the 1 week backfill (or more?) beta so in a few weeks when everyone has sorted out the issues it will be possible.

    You should have no problems with your desires ... but go to the support board as there are a number of folk more than willing to give you long point by point answers if you have trouble with something.
  3. dloomis514

    dloomis514 Guest

    Have you checked out esiignal, no hassles with data at all, just load and go!
  4. DTK


    IB backfills 1 day (to my experience). So if you open your TWS, and Sierra Chart (make sure you have the backfill checkbox marked in 'data source settings" before 4:15pm EST, you should get the entire session.

    Or you could just have it on all day and wait until you have enough data to trade off if you trade off intraday setups and signals.

    Great product.
  5. DTK


    Get the screen to look exactly the way you want it. Then click 'save as' and call it 'default.cht'. (just leave it in the data folder which is where 'save as' defaults to when you click it) The next time you start up, it will look exactly as you left it.
  6. cmk


    Thank you all for your help.

    I will most certainly check out the SC boards and get everything going from there.

    Again, thank you all for your help / advice
  7. LOL Mr Loomis


    Attached is an update of kiwext.dll with a new function:

  8. Using it in both forms:

    <img src=">
    • l089.gif
      File size:
      15.1 KB
  9. Newer version includes FVE as well as VFI.

    void __declspec(dllexport) FVE(struct s_sg &sg)
    		sg.GraphName="Finite Volume Element";sg.SubgraphName[0]="FVE";
    	} else
    		sg.GraphName="FVE Linear Regression Slope";
    		sg.SubgraphName[0]="";sg.SubgraphName[1]="FVELRS"; sg.SubgraphName[2]="PriceLRS";
    	sg.InputNames[2]="Type: 0=FVE, 1=LinRegresFVE";
    	sg.InputNames[3]="Volatility Cut Off";
    	sg.InputNames[5]="LRS Length";
    	sg.InputNames[6]="PriceSlope Multiplier";
    	if(sg.ArraySize<100) return;
    	int    i,pos;
    	float  TP=0,TP1,MF,VolumePlusMinus=0,FVESum=0,VolAve=0,FVEFactor,FVE,
    		   Sum1=0,SumY=0,Sum2=0,SumBars,SumSqrBars, Num1, Num2, FVESlope, PriceSlope, Intercept;
    	if(sg.Inputs[3]==0) sg.Inputs[3]=0.0002;
    	float CutOff=sg.Inputs[3];
    	if(sg.Inputs[4]==0) sg.Inputs[4]=21;
    	int Samples=sg.Inputs[4];
    	if(sg.Inputs[5]==0) sg.Inputs[5]=35;
    	int Len=sg.Inputs[5];
    	if(sg.Inputs[6]==0) sg.Inputs[6]=1;
    	SumBars= Len*(Len-1)*0.5;
    	for (pos=sg.DataStartIndex; pos < sg.ArraySize; pos++)
    		TP = sg.BaseDataIn[7][pos];
    		MF = ( sg.BaseDataIn[3][pos] - ((sg.BaseDataIn[1][pos] + sg.BaseDataIn[2][pos] )/2) )+ TP - TP1 ;
    		if(MF > CutOff * sg.BaseDataIn[3][pos])
    			FVEFactor = 1; else
    			if(MF < (-1 * CutOff * sg.BaseDataIn[3][pos]))
    				FVEFactor = -1; else
    				FVEFactor = 0.000001;
    			VolumePlusMinus = sg.BaseDataIn[4][pos] * FVEFactor ;
    			FVESum = FVESum+VolumePlusMinus;
    			VolAve = VolAve+sg.BaseDataIn[4][pos];
    			FVE = ((FVESum/Samples)/(VolAve/Samples)) * 100 ; //
    			{sg.SubGraphDataOut[0][pos] = FVE;} else
    				sg.SubGraphDataOut[6][pos] = FVE;
    				if ( pos>=50)
    					Sum1=0; SumY=0;
    					for (i=0; i<=(Len-1); i++) {Sum1 = Sum1 + (i) * sg.SubGraphDataOut[6][pos-i];}
    					for (i=0; i<=(Len-1); i++) {SumY = SumY + sg.SubGraphDataOut[6][pos-i];}
    					if(Num2!=0) FVESlope = Num1/Num2; else
    				if ( pos>=50)
    					Sum1=0; SumY=0;
    					for (i=0; i<=(Len-1); i++) {Sum1 = Sum1 + (i) * sg.BaseDataIn[3][pos-i];}
    					for (i=0; i<=(Len-1); i++) {SumY = SumY + sg.BaseDataIn[3][pos-i];}
    					if(Num2!=0) PriceSlope = Num1/Num2; else
    				sg.SubGraphDataOut[1][pos] = FVESlope;
    				sg.SubGraphDataOut[2][pos] = PriceSlope*sg.Inputs[6];
    				sg.SubGraphDataOut[3][pos] = 0;
    			sg.SubGraphDataOut[4][pos] = VolumePlusMinus;
    			sg.SubGraphDataOut[5][pos] = sg.BaseDataIn[4][pos];
    			FVESum = FVESum-sg.SubGraphDataOut[4][pos-Samples+1];
    			VolAve = VolAve-sg.SubGraphDataOut[5][pos-Samples+1];
    void __declspec(dllexport) VFI(struct s_sg &sg)
    	sg.GraphName="Volume Flow Indicator";
    		sg.SubgraphName[0]="VFI"; sg.SubgraphName[1]=""; sg.SubgraphName[2]="";
    	} else
    		sg.SubgraphName[0]="VFI Neutral";sg.SubgraphName[1]="VFI Up"; sg.SubgraphName[2]="VFI Dn";
    	sg.SubgraphName[3]="VFI Smoothed";
    	sg.InputNames[2]="Type: 0= One Colour, 1= Three Colour";
    	sg.InputNames[5]="Max Volume Cutoff";
    	sg.InputNames[6]="Smoothing Period";
    	if(sg.ArraySize<100) return;
    	int    i,pos;
    	double  VFI=0, VFISmooth=0, VFISmooth1, MF, Inter, VInter, MyVolAvg=0, MyVolAvg1, VAve, CutOff, VMax,VC,DirectionalVolume,
       			sum=0, sma, sumstd, sumsqrs,sumd=0 ;
    	if(sg.Inputs[3]==0) sg.Inputs[3]=130;
    	int Period=sg.Inputs[3];
    	if(sg.Inputs[4]==0) sg.Inputs[4]=0.2;
    	double Coef=sg.Inputs[4];
    	if(sg.Inputs[5]==0) sg.Inputs[5]=2.5;
    	double VCoef=sg.Inputs[5];
    	if(sg.Inputs[6]==0) sg.Inputs[6]=3;
    	double factor0 = 2/(sg.Inputs[6]+1);
    	for (pos=sg.DataStartIndex; pos < sg.ArraySize; pos++)
    		MyVolAvg = MyVolAvg+sg.BaseDataIn[4][pos];
    		if(sg.BaseDataIn[7][pos]>0 & sg.BaseDataIn[7][pos-1]>0)
    		    Inter = log10(sg.BaseDataIn[7][pos]) - log10(sg.BaseDataIn[7][pos-1]);
    			sg.SubGraphDataOut[4][pos] = Inter;  // Calculate Std Deviation of Inter
    			sum = sum + Inter;
    			sma = sum/30 ;
    			sum = sum - sg.SubGraphDataOut[4][pos-30+1];
    				for(i=0; i<30; i++)
    						sumsqrs = sumsqrs + ((sg.SubGraphDataOut[4][pos-i]-sma)*(sg.SubGraphDataOut[4][pos-i]-sma));
    			VInter= sqrtf(sumsqrs/30); // stddev
        		CutOff = Coef * VInter * sg.BaseDataIn[3][pos] ;
        		VAve = MyVolAvg1/Period ;
        		VMax = VAve * VCoef ;
        	 	if(sg.BaseDataIn[4][pos] < VMax) VC=sg.BaseDataIn[4][pos]; else VC=VMax;
    			MF = sg.BaseDataIn[7][pos] - sg.BaseDataIn[7][pos-1];
        		if(MF>CutOff) DirectionalVolume=VC; else if(MF<-CutOff) DirectionalVolume=-VC; else DirectionalVolume=0;
    			sg.SubGraphDataOut[6][pos] = DirectionalVolume;
    			sumd = sumd + DirectionalVolume;
    			VFI = (sumd/Period) / VAve ;
    			sumd = sumd - sg.SubGraphDataOut[6][pos-Period+1];
    			if(pos>sg.DataStartIndex) VFISmooth = (1-factor0)*sg.SubGraphDataOut[3][pos-1] + factor0*VFI;
    		{ VFISmooth = 0; };
    		if(sg.Inputs[2]==0) sg.SubGraphDataOut[0][pos] = VFI; else
    			if(MF==CutOff) sg.SubGraphDataOut[0][pos] = VFI; else
    			if(MF>CutOff) sg.SubGraphDataOut[1][pos] = VFI; else
    			if(MF<CutOff) sg.SubGraphDataOut[2][pos] = VFI;
    		sg.SubGraphDataOut[3][pos] = VFISmooth;
    		sg.SubGraphDataOut[5][pos] = sg.BaseDataIn[4][pos];
    		MyVolAvg = MyVolAvg-sg.SubGraphDataOut[5][pos-Period+1];
  10. Let me know if there are any errors/issues.

    <img src="">
    • l090.gif
      File size:
      15.6 KB
    #10     Jul 8, 2005