Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 625

 
laveosa:

no, no está trabajando..... ¿para qué lo hicimos?


MaperiodM5ma_2 = 25 / Period(); Supongamos que lo ponemos en H1, como resultado obtenemos 25/60=0,41, en int será 0, ya que no existe tal МА periodo, en este caso utilizamos el mínimo posible, es decir, 1. En realidad debería funcionar, a veces uso tales variantes, el resultado del comercio difiere insignificantemente del período "nativo".
 
Vinin:

Sólo hay que pensar antes de hacer preguntas. Estar cerca y no estar cerca son conceptos completamente diferentes.

La pregunta era muy simple como hacer que el resultado de la prueba sea el mismo en cualquier momento, si no fue lo suficientemente claro trataremos de ser más detallados la próxima vez... Gracias.
 
benzovoz:


MaperiodM5ma_2 = 25 / Period(); Supongamos que lo ponemos en H1, el resultado será 25/60=0,41, en int será 0, ya que no existe tal МА periodo, en este caso utilizamos el mínimo posible, es decir, 1. En realidad debería funcionar, yo a veces uso esas variantes y el resultado del comercio difiere insignificantemente del período "nativo".

Lo tengo, muchas gracias y me ayudó a entender algunas cosas ... Todavía no he cambiado el resultado, pero gracias de todos modos :)
 
laveosa:

Lo tengo, gracias y me ha ayudado mucho a entender algunos temas... Todavía no he cambiado el resultado, pero gracias de todos modos :)


No te funcionará ya que no hemos tenido en cuenta las barras del cálculo del indicador, yo uso la barra cero por lo que me funciona y a ti la 1ª y 2ª barra, no puedes "convertirlas" al pasar a un marco temporal superior.

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


 
benzovoz:


No te funcionará ya que no hemos tenido en cuenta las barras del cálculo del indicador, yo uso barra cero por lo que me funciona y a ti la 1ª y 2ª barra, no puedes "convertirlas" al cambiar a un marco temporal superior.

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



Lo tengo.... Lo probaré ahora.

 
Tengo un 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);}
//+---------------------------------------------------------------------+




Quiero hacer un EA que entre en una posición cuando aparezca una flecha, ¿qué condición hay que escribir en el EA?

Y aquí está el propio 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);
}
//+------------------------------------------------------------------+


 

¡¿Es posible descargar los gráficos para el análisis técnico, - índices S & P 500 Futuros Gráfico, TA 25 Gráfico, y el S & P 500 Gráfico si es posible puede indicar cómo hacer esto, tal vez hay una explicación de cómo descargar!

No encuentro un broker de este tipo, ¿podéis aconsejarme un programa de análisis técnico, que me permita descargar los índices que me interesan (puede ser en tiempo real) o un broker.

Tal vez exista la posibilidad de descargar estos índices MT-4 o MT-5. Estoy empezando a intentar hacer análisis técnicos, me gustaría mucho escuchar los consejos de los expertos sobre cómo afrontar mi tarea.

Agradezco de antemano su ayuda.
 
igalx:

¡¿Es posible descargar los gráficos para el análisis técnico, - índices S & P 500 Futuros Gráfico, TA 25 Gráfico, y S & P 500 Gráfico si es posible puede decir cómo hacer esto, tal vez hay una explicación de cómo descargar!

No encuentro un broker de este tipo, ¿podéis aconsejarme un programa de análisis técnico, que me permita descargar los índices que me interesan (puede ser en tiempo real) o un broker.

Tal vez exista la posibilidad de descargar estos índices MT-4 o MT-5. Acabo de empezar a intentar hacer un análisis técnico, me gustaría que me aconsejaran los expertos sobre cómo afrontar mi problema.

De antemano agradezco su ayuda.



Se puede, sólo hay que convertirlo al formato adecuado, incluso hay brokers que tienen estas herramientas. Alpari SIP los tiene.

 

¡Buenos días a todos!

Necesito ayuda, consejo.

No puedo pasar datos de cadena a la DLL. O el tipo de variable es erróneo, o está escrito en una codificación incorrecta.

DLL en 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.

No preste atención a las variables Path y Simbol. Se escriben sistemáticamente en el archivo algunas tonterías ilegibles.

He probado con todos los tipos de variables Stroka(Pchar,String, ShortString, AnsiString) y sigue apareciendo algo como "0 0 : 0 3 : 0 6 : : 1 . 3" intentó cambiar de codificación, pero sigue siendo ilegible.

 

Todo resuelto.

Todo está escrito en UTF-8 ASCII con espacios añadidos automáticamente después de cada carácter "útil". Y para transferir más de 26 caracteres (13 útiles) no es posible. Tendré que pasar algunas variables y luego conectar. De alguna manera...