[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 457

 

Buon pomeriggio a tutti.

Potete descrivere nel codice come piazzare ordini su un conto di lavoro dal terminale "investitore" in parallelo.

Non dovrei trasferirli manualmente.

Il codice non dovrebbe essere trasferito manualmente.

 
gvi2504 >>:

Добрый день всем.

Вопрос на засыпку.Можно описать в коде, чтобы параллельно выставлялись ордера на рабочем счете, с терминала "инвестор".

Что-бы не переносить в ручную.

Спасибо.


il copiatore di accordi si chiama. ce n'è uno sul sito web nel codebase.
 
fragile86 >>:


if (Bid > MA1 || Bid < MA2) // Проверка прохода диапазона
{
Alert("Цена находится за пределами диапазона.");// Сообщение
}

то если цена находится выше советник то и дело сигналит. а если я делаю так:

segnalerà perché avete una condizione o ( || )

devi mettere AND ( && ).

// Проверка прохода диапазона с возможным размещением МА друг относительно друга
if (Bid> MA1 && Bid< MA2) || (Bid< MA1 && Bid> MA2)) 
{

e qui


if (Bid > MA1 && Fact_Up==true) // Controlla il passaggio al rialzo
{
Fact_Dn=true; // Segnala un prezzo sopra MA1
Fact_Up=false; // Non segnalare il prezzo sotto la MA1
Alert("Il prezzo è sopra l'intervallo.");// Messaggio
}
//--------------------------------------------------------------------
if (Bid < MA2 && Fact_Dn==true) // Controlla un movimento al ribasso
{
Fact_Up=true; // Segnala un prezzo sotto MA2
Fact_Dn=false; // Non segnalare un prezzo sopra MA2
Alert("Il prezzo è sotto l'intervallo.");// Messaggio
}

L'autore voleva dire che il segnale dovrebbe essere dato solo una volta. E poi la bandiera viene immediatamente reimpostata su False, e fino a quando il prezzo è sotto MA2 il segnale al lato passato non apparirà.

 
sergeev >>:


копировщик сделок назвывается. на сайте в кодебазе есть.

Grazie.

 
sergeev писал(а) >>

segnalerà perché avete una condizione o ( || )

devi mettere AND ( && ).

e qui

quello che l'autore intendeva dire è che si deve dare il segnale solo una volta. E poi la bandiera viene immediatamente resettata a False e fino a quando il prezzo è inferiore a MA2 il segnale al lato passato non apparirà più.

Grazie per la risposta. l'unica cosa che mi confonde è questa: se (Bid> MA1 && Bid< MA2) || (Bid< MA1 && Bid> MA2))

Ho due MA, una (MA1) è tracciata lungo High, l'altra (MA2) lungo Low. Ma qui risulta che la condizione è soddisfatta quando il prezzo è superiore a High e contemporaneamente inferiore a Low se è impostato &&.

Forse mi sto sbagliando, ma la mia lettura di questa linea è: se il prezzo è sopra МА1 e sotto МА2 o sotto МА1 e sopra МА2, allora...

Ora l'ho scritto così:

if (Bid > MA1 && Open < MA1) // Проверка прохода диапазона вверх
{
Alert("Цена находится выше диапазона.");// Сообщение
}
else
{
if (Bid < MA2 && Open > MA2) // Проверка прохода диапазона вниз
{
Alert("Цена находится ниже диапазона.");// Сообщение
}
}

In questo caso, non appena la barra aperta all'interno del range incrocia la MA, l'EA dà un segnale, ma continua a darlo ogni volta che arriva un nuovo tick. e cerco di fare in modo che non lo dia sui prossimi tick dopo che il segnale è apparso. (Non giudicare, non sono molto bravo a farlo)
 
Se voglio ottenere una posizione inversa sul mio conto, invece di vendere - comprare, invece di TP - SL, invece di SL - TP, con scambi in sospeso secondo lo stesso schema, sarò molto grato, ma entro limiti ragionevoli.
 

Gente, aiuto con OrderType(), si rifiuta di funzionare dopo di esso, va bene senza di esso. Quale può essere l'errore?

if(z==1){
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
double pbt=OrderOpenPrice();
OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
double pst=OrderOpenPrice();
double veha1=(pbt-pst+kon)*10000;
OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL && c==0){ <--------------------------------------------------------------------------------------------
Print("Work ", veha1);
b11=OrderSend(Symbol(),OP_BUYSTOP,Lots,pbt+Point*10,3,0,0, "b11",1,0,Blue);
s2=OrderSend(Symbol(),OP_SELLSTOP,Lots,pst-Point*10,3,0,0, "s2",2,0,Rosso);
OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*40,Ask-Point*veha1,0,Rosso);
c=1;
}

Grazie in anticipo!

 
if( z==1)
{
   OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
   double pbt=OrderOpenPrice();
   OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
   double pst=OrderOpenPrice();
   double veha1=( pbt- pst+ kon)*10000;
   OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
   if(OrderType()==OP_SELL && c==0)
   { <--------------------------------------------------------------------------------------------
      Print("Работоспособность ", veha1);
      b11=OrderSend(Symbol(),OP_BUYSTOP, Lots, pbt+Point*10,3,0,0, "b11",1,0,Blue);
      s2=OrderSend(Symbol(),OP_SELLSTOP, Lots, pst-Point*10,3,0,0, "s2",2,0,Red);
      OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
      OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*40,Ask-Point* veha1,0,Red);
      c=1;
   }
}
Che tipo di ordini aprite, non ordini pendenti?
 

{ <--------------------------------------------------------------------------------------------

Questo, che diavolo è?

 

Sì, apro un ciondolo. quando va sul mercato, se ne apre un altro e cambiano quelli esistenti sul mercato.

{ <--------------------------------------------------------------------------------------------

Questo, che diavolo è questo?

mi ha appena mostrato dov'è il problema=)