Qualcuno mi aiuti a caricare le quotazioni dei broker sul terminale. Ho pulito la cartella History, ho cambiato il numero di barre visualizzate nelleimpostazioni del terminale, ho scaricato la storia completa per la coppia e il timeframe di interesse dal nodo metastock, ho scaricato un file cvs dal sito web finam, sono andato all'archivio delle quotazioni, scheda importazione, panoramica - il mio file cvs-open-ok e .... Il file cvs non è le virgolette. Ho scaricato uno script che genera cvs in hst e l'ho installato sul grafico e niente, non ho nemmeno visto la finestra con le sue impostazioni, ditemi cosa fare!
mason: Qualcuno mi aiuti a caricare le quotazioni dei broker sul terminale. Ho pulito la cartella History, ho cambiato il numero di barre visualizzate nelleimpostazioni del terminale, ho scaricato la storia completa per la coppia e il timeframe di interesse dal nodo metastock, ho scaricato un file cvs dal sito web finam, sono andato all'archivio delle quotazioni, scheda importazione, panoramica - il mio file cvs-open-ok e .... Il file cvs non è le virgolette. Ho scaricato lo script che genera cvs in hst e l'ho installato sul grafico e non appare nemmeno nella finestra delle impostazioni.
E mostrami il tuo file csv, se non è un grande segreto.
Questa è una funzione elementare di immissione di ordini pendenti, i parametri non sono importanti, ma è importante che l'Expert Advisor (può utilizzare il ciclo esistente di ordini pendenti) dopo aver ricevuto un "nuovo prezzo" o per cercarlo, o per evitare in qualche modo di immettere ordini allo stesso prezzo. In questo caso, il ciclo di immissione degli ordini non dovrebbe fermarsi.
doppio Dist=10000.0; stringa SMB; doppio NewPrice; int i; int start() { RefreshRates(); SMB=Simbolo(); {UstanOtlozh();} } ritorno(0); void UstanOtlozh() { double OldPrice=WindowPriceOnDropped(); // Qui viene lanciato lo script RefreshRates(); SMB=Simbolo(); { int i=1; mentre(i<=OrdiniTotali()) { if (OrderSelect(i-1,SELECT_BY_POS)==true) // se c'è un { // Analisi dell'ordine: if (OrderSymbol()!= SMB) continue; // Non è il nostro strumento finanziario. int Tip=OrderType(); // Tipo di ordine if (Tip<2) continue; // Ordine a mercato double NewPrice=OrderOpenPrice(); // Prezzo dell'ordine { while(NewPrice<=Ask+200*Point||NewPrice>=Ask+50*Point) { NewPrice=NewPrice+50*Point; OrderSend(SMB,OP_BUYSTOP,0.01,NewPrice,3,0,0,0,NULL,0,CLR_NONE); if(NewPrice>Ask+200*Point||NewPrice<Ask+50*Point) pausa; }}}}}}
II Qui c'è una funzione elementare di immissione di ordini pendenti, i parametri non sono importanti, ma è importante fare in modo che l'Expert Advisor (può utilizzare il ciclo esistente di valutazione degli ordini) dopo aver ricevuto un "nuovo prezzo" o per passare attraverso di esso, o per evitare in qualche modo di immettere ordini allo stesso prezzo. In questo caso, il ciclo dell'ordine non dovrebbe fermarsi. Per favore, aiutatemi.
doppio Dist=10000.0; stringa SMB; doppio NewPrice; int i,z; int start() { RefreshRates(); SMB=Simbolo(); {UstanOtlozh();} } ritorno(0); void UstanOtlozh() { double OldPrice=WindowPriceOnDropped(); // Qui viene lanciato lo script RefreshRates(); SMB=Simbolo(); { int i=1; mentre(i<=OrdiniTotali()) { if (OrderSelect(i-1,SELECT_BY_POS)==true) // se c'è un { // Analisi dell'ordine: if (OrderSymbol()!= SMB) continue; // Non è il nostro strumento finanziario. int Tip=OrderType(); // Tipo di ordine if (Tip<2) continue; // Ordine a mercato double NewPrice=OrderOpenPrice(); // Prezzo dell'ordine { while(NewPrice<=Ask+100*Point||NewPrice>=Ask+20*Po int) { NewPrice=NewPrice+20*Point; for(z=0; z<OrdersTotal(); z++) { if(OrderSelect(z, SELECT_BY_POS, MODE_TRADES)) { if(OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP) { se (NormalizeDouble(OrderOpenPrice(),Digits)== NormalizeDouble(NewPrice,Digits)) Alert("Abbiamo già un ordine a questo prezzo"); pausa; } } } OrderSend(SMB,OP_BUYSTOP,0.01,NewPrice,3,0,0,NULL, 0,CLR_NONE); if(NewPrice>Ask+100*Point||NewPrice<Ask+20*Point) ritorno; }}}}}}
Lasciamo che i guru commentino se una pausa è necessaria qui o no, e lasciamo che alexey1979621 pensi, questa funzione è chiamata lì?
Inoltre, se usiamo CountTrades(); quindi, è uguale a OrdersTotal(), più facile e veloce.
Non sono un guru, ma vi rispondo: finché non si incontra un break;, tutti i casi saranno eseguiti:
Dove siete voi famosi professionisti? Aiuta uno zoppo!
Chi vi impedisce di scaricare la storia alla vecchia maniera, con il tasto HOME?
Qualcuno mi aiuti a caricare le quotazioni dei broker sul terminale. Ho pulito la cartella History, ho cambiato il numero di barre visualizzate nelleimpostazioni del terminale, ho scaricato la storia completa per la coppia e il timeframe di interesse dal nodo metastock, ho scaricato un file cvs dal sito web finam, sono andato all'archivio delle quotazioni, scheda importazione, panoramica - il mio file cvs-open-ok e .... Il file cvs non è le virgolette. Ho scaricato lo script che genera cvs in hst e l'ho installato sul grafico e non appare nemmeno nella finestra delle impostazioni.
E mostrami il tuo file csv, se non è un grande segreto.
Sinceramente non capisco il senso di questo codice..... è meno di meno cento, perché <100 allora?
Questa è una funzione elementare di immissione di ordini pendenti, i parametri non sono importanti, ma è importante che l'Expert Advisor (può utilizzare il ciclo esistente di ordini pendenti) dopo aver ricevuto un "nuovo prezzo" o per cercarlo, o per evitare in qualche modo di immettere ordini allo stesso prezzo. In questo caso, il ciclo di immissione degli ordini non dovrebbe fermarsi.
doppio Dist=10000.0;stringa SMB;
doppio NewPrice;
int i;
int start()
{
RefreshRates();
SMB=Simbolo();
{UstanOtlozh();}
}
ritorno(0);
void UstanOtlozh()
{
double OldPrice=WindowPriceOnDropped(); // Qui viene lanciato lo script
RefreshRates();
SMB=Simbolo();
{
int i=1;
mentre(i<=OrdiniTotali())
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // se c'è un
{ // Analisi dell'ordine:
if (OrderSymbol()!= SMB) continue; // Non è il nostro strumento finanziario.
int Tip=OrderType(); // Tipo di ordine
if (Tip<2) continue; // Ordine a mercato
double NewPrice=OrderOpenPrice(); // Prezzo dell'ordine
{
while(NewPrice<=Ask+200*Point||NewPrice>=Ask+50*Point)
{
NewPrice=NewPrice+50*Point;
OrderSend(SMB,OP_BUYSTOP,0.01,NewPrice,3,0,0,0,NULL,0,CLR_NONE);
if(NewPrice>Ask+200*Point||NewPrice<Ask+50*Point)
pausa;
}}}}}}
II Qui c'è una funzione elementare di immissione di ordini pendenti, i parametri non sono importanti, ma è importante fare in modo che l'Expert Advisor (può utilizzare il ciclo esistente di valutazione degli ordini) dopo aver ricevuto un "nuovo prezzo" o per passare attraverso di esso, o per evitare in qualche modo di immettere ordini allo stesso prezzo. In questo caso, il ciclo dell'ordine non dovrebbe fermarsi. Per favore, aiutatemi.
doppio Dist=10000.0;
stringa SMB;
doppio NewPrice;
int i,z;
int start()
{
RefreshRates();
SMB=Simbolo();
{UstanOtlozh();}
}
ritorno(0);
void UstanOtlozh()
{
double OldPrice=WindowPriceOnDropped(); // Qui viene lanciato lo script
RefreshRates();
SMB=Simbolo();
{
int i=1;
mentre(i<=OrdiniTotali())
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // se c'è un
{ // Analisi dell'ordine:
if (OrderSymbol()!= SMB) continue; // Non è il nostro strumento finanziario.
int Tip=OrderType(); // Tipo di ordine
if (Tip<2) continue; // Ordine a mercato
double NewPrice=OrderOpenPrice(); // Prezzo dell'ordine
{
while(NewPrice<=Ask+100*Point||NewPrice>=Ask+20*Po int)
{
NewPrice=NewPrice+20*Point;
for(z=0; z<OrdersTotal(); z++)
{
if(OrderSelect(z, SELECT_BY_POS, MODE_TRADES))
{
if(OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)
{
se (NormalizeDouble(OrderOpenPrice(),Digits)== NormalizeDouble(NewPrice,Digits))
Alert("Abbiamo già un ordine a questo prezzo");
pausa;
}
}
}
OrderSend(SMB,OP_BUYSTOP,0.01,NewPrice,3,0,0,NULL, 0,CLR_NONE);
if(NewPrice>Ask+100*Point||NewPrice<Ask+20*Point)
ritorno;
}}}}}}