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

 
Hedin:


In forex quasi tutti i server sono gratuiti.

E per di più, quasi tutte le case di intermediazione hanno conti demo dove si può fare trading con denaro virtuale invece che con denaro reale.

Grazie, puoi darmi un link specifico? Non posso cercarlo su Google. Grazie ancora.
 
artmedia70:
Cos'è un Margin CALL?
Una Margin Call è una condizione che risulta in una chiusura forzata di una posizione.

Questo si verifica quando il saldo del tuo conto (Equity) ha raggiunto lo zero del margine richiesto (Margin) per l'ammontare di tutte le posizioni aperte.

L'operazione è automatica. In alcune aziende il Margin Call è fissato al 30% del patrimonio netto.

Cioè [AccountFreeMargin() = AccountEquity() - Margin] ?

dove Margine -> totale per tutte le posizioni aperte.




 
Guest77:
Grazie, puoi dare un link specifico? Non posso cercarlo su Google. Grazie ancora.

Tutto quello che devi fare è scaricare e installare MetaTrader 4 da qualsiasi broker.

Dovete aprire un conto demo e siete pronti ad usarlo. Tutto è gratuito. Puoi trovare un broker attraverso Google, ce ne sono molti.

 

Ciao a tutti. Ho affrontato un problema durante la scrittura di un EA, sento che l'errore è da qualche parte in superficie, ma non riesco a trovarlo. Sarò felice se qualcuno mi dirà cosa fare.

L'essenza del problema: mi è stato chiesto di aggiungere un trailing stop in uno degli EA di Igor Kim per diverse posizioni contemporaneamente. Ho aggiunto tutto, ma il risultato è pessimo :( Il trailing stop si muove sempre nei punti TStop.Sell e TStop.Buy lontano da bid e ask, cioè il prezzo sale, anche il trailing stop sale, il prezzo scende - trailing stop scende... Non ho bisogno di chiamare la squadra telepatica, aggiungerò il codice io stesso :)

int start()
{
 if(GetProfitOpenPosInCurrency(Symbol(),-1,MagicNumber)>=ProfitToStartTral) //если прибыль в валюте депозита больше заданной в настройках
    {
     CloseLoss(Symbol(),-1,MagicNumber);//закрываем все убыточные позы советника по текущему символу
     start3();//запускаем трал
    }
  //бла-бла-бла, тут еще куча рабочего кода :)
}

Funzioni definite dall'utente:

void start3() 
 {
  if (ShowComment) {
    Comment(IIFs(AllSymbols, "AllSymbols  ", "")
           ,"Magic="+IIFs(Magic<0, "Любой", DoubleToStr(Magic, 0))+"  "
           ,IIFs(TSProfitOnly, "TSProfitOnly  ", "")
           ,"TStop.Buy="+DoubleToStr(TStop.Buy, 0)+"п  "
           ,"TStop.Sell="+DoubleToStr(TStop.Sell, 0)+"п  "
           ,"TrailingStep="+DoubleToStr(TrailingStep, 0)+"п  "
           );
  } else Comment("");

  string sy=IIFs(AllSymbols, "", NULL);
  SimpleTrailing(sy, -1, Magic);
 } 
//*********************************************************************//
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (!TSProfitOnly || pp-OrderOpenPrice()>TStop.Buy*po) {
              if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) {
                ModifyOrder(-1, pp-TStop.Buy*po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (!TSProfitOnly || OrderOpenPrice()-pp>TStop.Sell*po) {
              if (OrderStopLoss()>pp+(TStop.Sell+TrailingStep-1)*po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+TStop.Sell*po, -1);
              }
            }
          }
        }
      }
    }
  }
} 
//****************************************************
string IIFs(bool condition, string ifTrue, string ifFalse) {
  if (condition) return(ifTrue); else return(ifFalse);
}
 

Voglio sapere se è possibile passare i parametri specificati nel codice dell'indicatore (non i parametri dell'indicatore stesso) a un altro indicatore per l'elaborazione?

La seconda domanda, come passare i parametri dall'indicatore all'EA e come si comporterà questo EA in modalità test?

Grazie in anticipo!

 

Lo stai spiegando in modo molto contorto.

Il modo più semplice per trasferire in MT tramite GlobalVariable è più o meno come gli appunti. Uno mette l'altro prende.

Ma ci sono molte altre opzioni, a seconda della situazione. Dato che non c'è una situazione, è difficile parlare di opzioni. Sarà testato sullo stesso personaggio.

 
zhuki:

Lo stai spiegando in modo molto contorto.

Il modo più semplice per trasferire in MT tramite GlobalVariable è più o meno come gli appunti. Uno mette l'altro prende.

Ma ci sono molte altre opzioni, che dipendono dalla situazione. Dato che non c'è una situazione, è difficile parlare di opzioni. Sarà testato sullo stesso personaggio.


GlobalVariable non si trova nell'aiuto di MT, ....

sulle varianti. Per esempio, il calcolo è il seguente, c'è un indicatore zigzag, ho aggiunto un codice che definisce i modelli al codice zigzag, come If (condition) se la condizione è soddisfatta, a =1 variabile se non è soddisfatta, a=0. Ho bisogno di passare questo valore variabile a un altro indicatore, in questo caso se la variabile in tale indicatore era uguale a (a=1) fare quanto segue, se a=0. Si tratta di passare parametri tra indicatori.

e, rispettivamente, nella stessa forma per passare parametri dall'indicatore all'Expert Advisor. Quando lo provo nello Strategy Tester, l'Expert Advisor caricherà l'indicatore per il calcolo e passerà i valori della variabile all'EA? O darà errore perché la variabile è inaccessibile perché si trova nell'ambiente dell'indicatore!

 

Stessa domanda. Come si trasferiscono i dati da un indicatore non standard a un altro?

 
zhuki:

Lo stai spiegando in modo molto contorto.

Il modo più semplice per trasferire in MT tramite GlobalVariable è più o meno come gli appunti. Uno mette l'altro prende.

Ma ci sono molte altre opzioni, a seconda della situazione. Dato che non c'è una situazione, è difficile parlare di opzioni. Sarà testato sullo stesso personaggio.

Non puoi chiamarlo come l'iMA standard con il nome corto, per esempio?
 
Abzasc:
Non si può richiamare come l'iMA standard per nome corto, per esempio?

Si può chiamare, non ci sono errori, ma come passare il parametro? Faccio una chiamata, mettere il parametro tra parentesi (che chiamo), ma nella risposta giurare tale parametro non esiste nell'indicatore.