Пример #1
0
 private void AtualizarVariaveisBF(Ticker ticker, ref BlackFin dados)
 {
     if (dados.iMAXDC == 0 || ticker.iMaximo > dados.iMAXDC)
         dados.iMAXDC = ticker.iMaximo;
     if (dados.iMINDC == 0 || ticker.iMinimo < dados.iMINDC)
         dados.iMINDC = ticker.iMinimo;
 }
Пример #2
0
        private void CriarVariaveisBF( int d, ref BlackFin dados)
        {
            tsInicioTrade = TimeSpan.Parse(cbHorarioEntrada.SelectedItem.ToString());
            for (int i = 0; dia[d].Ticker[i] != null /*&& TimeSpan.Compare(dia[d].Ticker[i].dtData.TimeOfDay, dia[d].tsInicioTrade) <= 0*/; i++)
            {
                /*
                MAXDA = Máxima do dia anterior
                MINDA = Mínima do dia anterior
                AMPDA = Amplitude do dia anterior (MAXDA-MINDA)
                FDCPA = Filtro de compra (esse filtro autoriza a compra)
                FDVDA = Filtro de venda (esse filtro autoriza a venda)
                */
                if (dados.iMAXDA == 0 || dia[d].Ticker[i].iMaximo > dados.iMAXDA)
                    dados.iMAXDA = dia[d].Ticker[i].iMaximo;
                if (dados.iMINDA == 0 || dia[d].Ticker[i].iMinimo < dados.iMINDA)
                    dados.iMINDA = dia[d].Ticker[i].iMinimo;

            }
            dados.iAMPDA = dados.iMAXDA - dados.iMINDA;
            int filtro = (int)Math.Round((0.1 * dados.iAMPDA / 5.0)) * 5;
            dados.iFDCPA = dados.iMINDA - filtro;// (int)(0.1 * dados.iAMPDA / 5.0) * 5;
            dados.iFDVDA = dados.iMAXDA + filtro;// (int)(0.1 * dados.iAMPDA / 5.0) * 5;
        }
Пример #3
0
 private void ExecutaEntrada( ref DiaNegocio dia, ref BlackFin dadosBF, int i )
 {
     if (dadosBF.iAMPDA < 500)
         return;
     //ver melhor maneira de testar a última hora
     //filtro de compra
     if (dia.Ticker[i].iFechamento < dadosBF.iFDCPA)
         dadosBF.sAbaixoFDCPA++;
     //filtro de venda
     if (dia.Ticker[i].iFechamento > dadosBF.iFDVDA)
         dadosBF.sAcimaFDVDA++;
     if (i < 15)
         return;
     if (dadosBF.sAcimaFDVDA > 1 && dia.Ticker[i].iFechamento < dadosBF.iMAXDA && !dia.bNoMercado)
     {
         int iTradeNoDia = 0;
         while (dia.TradesDiaBF[iTradeNoDia] != null) iTradeNoDia++;
         dia.TradesDiaBF[iTradeNoDia] = new TradeBF(dia.Ticker[i].iFechamento, TradeBF.tipoTrade.venda, dadosBF.iMAXDC + 50);
         dia.bNoMercado = true;
         dadosBF.iMINDO = dia.Ticker[i].iFechamento;
         //entrar no trade VENDA
     }
     if (dadosBF.sAbaixoFDCPA > 1 && dia.Ticker[i].iFechamento > dadosBF.iMINDA && !dia.bNoMercado)
     {
         int iTradeNoDia = 0;
         while (dia.TradesDiaBF[iTradeNoDia] != null) iTradeNoDia++;
         dia.TradesDiaBF[iTradeNoDia] = new TradeBF(dia.Ticker[i].iFechamento, TradeBF.tipoTrade.compra, dadosBF.iMINDC - 50);
         dia.bNoMercado = true;
         dadosBF.iMAXDO = dia.Ticker[i].iFechamento;
         //entrar no trade COMPRA
     }
     return;
 }
Пример #4
0
        private void bTestarBF_Click(object sender, EventArgs e)
        {
            BlackFin dadosBF;
            for (int d = 1; dia[d] != null; d++)
            {
                dadosBF = new BlackFin();
                CriarVariaveisBF(d - 1, ref dadosBF);
                for (int i = 0, t = 0; dia[d].Ticker[i] != null; i++)
                {
                    AtualizarVariaveisBF(dia[d].Ticker[i], ref dadosBF);

                    if (dia[d].Ticker[i].dtData.Minute % 5 == 0)
                        ExecutaEntrada(ref dia[d], ref dadosBF, i);

                    AtualizaLucro();
                }
            }
        }