Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 625

 
laveosa:

no, non è lavorare ..... perché l'abbiamo fatto?


MaperiodM5ma_2 = 25 / Periodo(); Supponiamo di metterlo su H1, il risultato sarà 25/60=0.41, in int sarà 0, poiché non esiste un tale periodo МА, in questo caso usiamo il minimo possibile, cioè 1. In realtà dovrebbe funzionare, a volte uso tali varianti, il risultato del commercio differisce in modo insignificante dal periodo "nativo".
 
Vinin:

Bisogna solo pensare prima di fare domande. Vicino e non vicino sono concetti completamente diversi.

La domanda era molto semplice: come rendere il risultato del test lo stesso in qualsiasi momento, se non è stato abbastanza chiaro cercheremo di essere più dettagliati la prossima volta... Grazie!
 
benzovoz:


MaperiodM5ma_2 = 25 / Periodo(); Supponiamo di impostarlo su H1, il risultato sarà 25/60=0.41, in int sarà 0, poiché non esiste un tale periodo МА, in questo caso usiamo il minimo possibile, cioè 1. In realtà dovrebbe funzionare, a volte uso tali varianti e il risultato del commercio differisce in modo insignificante dal periodo "nativo".

Ho capito, grazie mille e mi ha aiutato a capire alcune cose ... Non ho ancora cambiato il risultato ma grazie comunque :)
 
laveosa:

L'ho ricevuto, grazie e mi ha aiutato molto a capire alcune questioni ... Non ho ancora cambiato il risultato ma grazie comunque :)


Non funzionerà per te perché non abbiamo considerato le barre del calcolo dell'indicatore, io uso la barra zero quindi funziona per me e per te la 1a e 2a barra, non puoi "convertirle" quando passi a un timeframe superiore.

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


 
benzovoz:


Non funzionerà per te perché non abbiamo considerato le barre del calcolo dell'indicatore, io uso la barra zero quindi funziona per me e per te la 1° e la 2° barra, non puoi "convertirle" quando passi a un timeframe superiore.

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



ce l'ho .... Lo proverò ora.

 
Ho un indicatore:
//+------------------------------------------------------------------+
//| 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);}
//+---------------------------------------------------------------------+




Voglio fare un EA che entri in posizione quando appare una freccia, quale condizione dovrebbe essere scritta nell'EA?

Ed ecco l'EA stesso:

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


 

È possibile scaricare i grafici per l'analisi tecnica, - indici S & P 500 Futures Chart, TA 25 Chart, e il S & P 500 Chart se possibile può richiedere come fare questo, forse c'è una spiegazione di come scaricare!

Non riesco a trovare un tale broker, potete consigliarmi un programma di analisi tecnica, che mi permetta di scaricare gli indici che mi interessano (può essere in tempo reale) o un broker.

Forse c'è la possibilità di scaricare questi indici MT-4 o MT-5. Sto appena iniziando a provare a fare analisi tecnica, mi piacerebbe molto sentire i consigli degli esperti su come affrontare il mio compito.

Vi sono molto grato in anticipo per il vostro aiuto.
 
igalx:

È possibile scaricare i grafici per l'analisi tecnica, - indici S & P 500 Futures Chart, TA 25 Chart, e il S & P 500 Chart se possibile può richiedere come fare questo, forse c'è una spiegazione di come scaricare!

Non riesco a trovare un tale broker, potete consigliarmi un programma di analisi tecnica, che mi permetta di scaricare gli indici che mi interessano (può essere in tempo reale) o un broker.

Forse c'è la possibilità di scaricare questi indici MT-4 o MT-5. Ho appena iniziato a provare a fare analisi tecnica, vorrei ricevere un consiglio da un esperto su come affrontare il mio problema.

In anticipo vi sono grato per il vostro aiuto.



È possibile, basta convertirlo nel formato giusto, ci sono anche broker che hanno questi strumenti. Alpari SIP li ha.

 

Buona giornata a tutti!

Ho bisogno di aiuto e consigli.

Non posso passare dati stringa alla DLL. O il tipo di variabile è sbagliato, o è scritto in una codifica sbagliata.

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

Non prestare attenzione alle variabili Path e Simbol. Alcune sciocchezze illeggibili vengono sistematicamente scritte nel file.

Ho provato tutti i tipi di variabili Stroka(Pchar,String, ShortString, AnsiString) e ancora qualcosa come "0 0 : 0 3 : 0 6 : : 1 . 3" ha provato a cambiare la codifica - ancora illeggibile.

 

Tutto risolto.

Tutto è scritto in UTF-8 ASCII con spazi aggiunti automaticamente dopo ogni carattere "utile". E trasferire più di 26 caratteri (13 utili) non è possibile. Dovrò passare alcune variabili e poi connettermi. In qualche modo...