Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 625

 
laveosa:

não, não está funcionando..... para que o fizemos?


MaperiodM5ma_2 = 25 / Period(); Suponhamos que o fixemos em H1, o resultado será 25/60=0,41, no int será 0, já que não existe tal período de MA, neste caso usamos o mínimo possível, ou seja, 1. Na verdade deveria funcionar, eu às vezes uso tais variantes, o resultado do comércio difere insignificantemente do período "nativo".
 
Vinin:

Você só tem que pensar antes de fazer perguntas. Fechar e não fechar são conceitos completamente diferentes.

A questão era muito simples: como tornar o resultado do teste o mesmo em qualquer momento, se não fosse suficientemente claro, tentaremos ser mais detalhados na próxima vez... Obrigado!
 
benzovoz:


MaperiodM5ma_2 = 25 / Period(); Suponhamos que o fixemos em H1, o resultado será 25/60=0,41, no int será 0, já que não existe tal período МА, neste caso usamos o mínimo possível, ou seja, 1. Na verdade deveria funcionar, eu às vezes uso tais variantes e o resultado do comércio difere insignificantemente do período "nativo".

Eu consegui, muito obrigado e isso me ajudou a entender algumas coisas ... Eu ainda não mudei o resultado, mas obrigado de qualquer forma :)
 
laveosa:

Consegui, obrigado e isso me ajudou muito a entender algumas questões ... Eu ainda não mudei o resultado, mas obrigado de qualquer forma :)


Não vai funcionar para você, pois não consideramos as barras do cálculo do indicador, eu uso a barra zero para que funcione para mim e para você a 1ª e 2ª barras, você não pode "convertê-las" quando você muda para um período de tempo mais alto.

M5maBIG_1= iMA(ed, Period() , MaperiodAVTO ,0,MODE_EMA,PRICE_CLOSE,1);


 
benzovoz:


Não vai funcionar para você, pois não consideramos as barras do cálculo do indicador, eu uso a barra zero para que funcione para mim e para você a 1ª e 2ª barras, você não pode "convertê-las" quando mudar para um período de tempo maior.

M5maBIG_1= iMA(ed, Period() , MaperiodAVTO ,0,MODE_EMA,PRICE_CLOSE,1);



eu tenho.... Vou tentar agora.

 
Eu tenho um indicador:
//+------------------------------------------------------------------+
//| T3MA_ALARM.mq4 |
//| Copyright © 2011, Martingeil |
//| fx.09@mail.ru |
//+------------------------------------------------------------------+
//исправленный Martingeil, теперь можно в тестере увидеть его стрелки.
#property copyright "Copyright © 2011, Martingeil"
#property link "fx.09@mail.ru"

//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- indicator parameters
extern int period = 4; //12
extern int shift = 0; //сдвиг по бару
//---- indicator buffers
double BufferUp[],BufferDn[];
int q,st=5;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
//---- drawing settings
SetIndexStyle(0,DRAW_ARROW,2);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW,2);
SetIndexArrow(1,234);

SetIndexBuffer(0,BufferUp);//стрелка синяя верх
SetIndexBuffer(1,BufferDn);//стрелка красная вниз
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("T3MA-ALARM ("+period+")");
//---- initialization done
if(Digits==3 || Digits==5) q=10;
st=st*q;
return(0);}

int deinit()
{
ObjectDelete("low");
ObjectDelete("high");
}
//+----------------------------------------------------------------------+
//| Moving Average of Oscillator |
//+----------------------------------------------------------------------+
int start()
{
//---- ArraySetAsSeries --------------------------------------------------
double Ma[500],MaOn[500];
double y0[500],y1[500],y2[500];
int i,limit=ArraySize(Ma);
ArraySetAsSeries(Ma,true);
//---- IndicatorCounted --------------------------------------------------
int counted_bars=IndicatorCounted();
int limit1=Bars-counted_bars;
if (limit1>1){limit1=Bars-period-1;}
//---- EMA ---------------------------------------------------------------
for(i=limit1; i>=0; i--) Ma[i] =iMA(NULL,0,period,0,MODE_EMA,PRICE_CLOSE,i);
for(i=limit1; i>=0; i--) MaOn[i]=iMAOnArray(Ma,limit,period,0,MODE_EMA,i);

for(i=limit1; i>=0; i--)
{
y0[i+shift]=MaOn[i+shift];
y1[i+1+shift]=MaOn[i+1+shift];
y2[i+2+shift]=MaOn[i+2+shift];

if(y0[i+shift]-y1[i+1+shift]<0 && y1[i+1+shift]-y2[i+2+shift]>0){BufferDn[i+1]=High[i+1]+st*Point;}//продажа
if(y0[i+shift]-y1[i+1+shift]>0 && y1[i+1+shift]-y2[i+2+shift]<0){BufferUp[i+1]=Low[i+1]-st*Point;}//покупка
//---- Signal Trend Up || Dn ---------------------------------------------
if(y0[i]-y1[i+1]>0) Comment ("\n SWAPLONG = ",MarketInfo(Symbol(),MODE_SWAPLONG),
" SWAPSHORT = ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n BUY TREND ",DoubleToStr(Close[i],Digits));

else if(y0[i]-y1[i+1]<0) Comment ("\n SWAPLONG = ",MarketInfo(Symbol(),MODE_SWAPLONG),
" SWAPSHORT = ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n SELL TREND ",DoubleToStr(Close[i],Digits));
}


//---- done
return(0);}
//+---------------------------------------------------------------------+




Quero fazer uma EA que entre em uma posição quando uma seta aparecer, que condição deve ser escrita na EA?

E aqui está a própria EA:

//+------------------------------------------------------------------+
//| million.mq4 |
//| Словаков Максим |
//| www.rubrf.ru |
//+------------------------------------------------------------------+
#property copyright "Словаков Максим"
#property link "www.rubrf.ru"
#property version "1.00"
#property strict

extern int Risk = 1;//риск на зделку
extern int Magic = 123; //магическое число


int x;
int y;
int v;
int z;
//+------------------------------------------------------------------+
int start()
{
double strelka=iCustom(NULL,0,"strelka",10,0,1,0);
double ma = iMA(NULL,0,72,0,MODE_SMMA,PRICE_CLOSE,0);
double atr = iATR(NULL,0,72,0);
double lotBuy = ((Risk*AccountEquity())/(1*(Ask-(Ask-atr)))/10000000);
double lotSell = ((Risk*AccountEquity())/(-1*(Bid-(Bid+atr)))/10000000);
if(OrdersTotal()==0)
{
if(ma<Bid)
{
  if(какое здесь нужно условие написать?)
{
x=OrderSend(Symbol(),OP_BUY,lotBuy,Ask,3,Ask-atr,0,"www.rubrf.ru",Magic,0,Blue);
}
}
if(ma>Bid)
{
  if( какое здесь нужно условие написать? )
{
y=OrderSend(Symbol(),OP_SELL,lotSell,Bid,3,Bid+atr,0,"www.rubrf.ru",Magic,0,Red);
}
}
}


return(0);
}
//+------------------------------------------------------------------+


 

É possível baixar os gráficos para análise técnica, - os índices S & P 500 Futures Chart, TA 25 Chart, e o S & P 500 Chart, se possível, podem fazer o download, talvez haja uma explicação de como fazer o download!

Não consigo encontrar tal corretor, você pode aconselhar um programa de análise técnica, que me permita baixar os índices em que estou interessado (pode ser em tempo real) ou um corretor.

Talvez haja uma oportunidade de baixar estes índices MT-4 ou MT-5. Estou apenas começando a tentar fazer análises técnicas, eu gostaria muito de ouvir conselhos de especialistas sobre como lidar com minha tarefa.

Agradeço antecipadamente por sua ajuda.
 
igalx:

É possível baixar os gráficos para análise técnica, - os índices S & P 500 Futures Chart, TA 25 Chart, e o S & P 500 Chart, se possível, podem fazer o download, talvez haja uma explicação de como fazer o download!

Não consigo encontrar tal corretor, você pode aconselhar um programa de análise técnica, que me permita baixar os índices em que estou interessado (pode ser em tempo real) ou um corretor.

Talvez haja uma oportunidade de baixar estes índices MT-4 ou MT-5. Comecei agora mesmo a tentar fazer análises técnicas, gostaria de obter conselhos de especialistas sobre como lidar com meu problema.

Agradeço antecipadamente a ajuda de vocês.



Você pode, você só precisa convertê-lo para o formato certo, há até mesmo corretores que possuem estas ferramentas. Alpari SIP os tem.

 

Bom dia a todos!

Precisa de ajuda, conselhos.

Eu não posso passar dados de cordas para DLL. Ou o tipo de variável está errado, ou está escrito em uma codificação errada.

DLL em Delphi:

library SaveFile;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project' s (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes,Dialogs;

{$R *.res}
function SaveFiles(Path: ShortString ;
Symbol: Shortstring;
Stroka: string ): integer; stdcall;

var outfile: TextFile;

begin
AssignFile(outfile, 'C:\Log.txt');

 try
   //Append(outfile);
   Rewrite(outfile);

   writeln(outfile, Stroka);
   CloseFile(outfile);
   Result:=0;
 except
   Result:=1;
 end;
   Result:=0;
 
end;

exports SaveFiles;
 
end.

Não preste atenção às variáveis Path e Simbol. Alguns disparates ilegíveis são sistematicamente escritos no arquivo.

Eu tentei todos os tipos de variáveis Stroka(Pchar,String, ShortString, AnsiString) e ainda algo como "0 0 : 0 3 : 0 6 : : 1 . Codificações de comutação de 3" experimentadas - ainda ilegíveis.

 

Tudo resolvido.

Tudo é escrito em UTF-8 ASCII com espaços adicionados automaticamente após cada caracter "útil". E transferir mais de 26 caracteres (13 úteis) não é possível. Terei que passar algumas variáveis e depois me conectar. De alguma forma...