[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 508
Numero di elementi della serie temporale (nella direzione dalla barra corrente all'indice ascendente), tra i quali deve essere eseguita la ricerca.
avviare
-
L'indice (offset dalla barra corrente) della barra iniziale da cui partirà la ricerca del valore più alto. I valori negativi sono ignorati e sostituiti da un valore zero.
Esempio:
Grazie mille. Non credo che ci saranno altre domande.
Cosa potrebbe essere poco chiaro per una persona - non lo so. Non so nemmeno cosa abbia causato l'aggressione e la cafonaggine (avrebbero potuto semplicemente ignorarlo), se gli altri avrebbero reagito o se si sarebbe ripreso da solo - per te è lo stesso?
Non dovresti pensare ad Alexei in questo modo. È una delle persone più benevole qui. Non voleva offendervi. Tutti vengono mandati da un telepate se non capiscono il problema. È uno scherzo locale con un significato.
Eccoli qui (ci sono molti più errori nel tuo codice, ma questi non passeranno nemmeno attraverso il compilatore): inoltre, anche se cambi il codice in qualcosa di più sano dal punto di vista del compilatore
sarà ancora teoricamente sbagliato senza aver prima normalizzato i valori reali prima del confronto. Inoltre, la normalizzazione può fallire se il prezzo cambia di più di un pip in un tick e la tua condizione viene mancata.
Il modo corretto di cercare la condizione di attraversamento è
P.S. È abbastanza facile trovare il posto con l'errore dopo la compilazione in MetaTrader:
1. Nella scheda "Toolbox", nella colonna "File", specificate il numero di riga e il numero del simbolo in cui il compilatore ha rilevato un errore, separati da virgole.
2. Se fate doppio clic sul messaggio di errore nel campo "Descrizione" della stessa scheda, il cursore dell'editor salterà al punto in cui il compilatore ha rilevato proprio questo errore.
Buon pomeriggio! Rispetto a tutti i membri del forum! Se puoi, ti prego di avvisare - quando si spegne la piattaforma i dati della rivista vengono necessariamente cancellati, giusto? E come si fa a scrivere le stampe o qualsiasi altro dato in uscita dall'Expert Advisor, in modo che quando si spegne il computer, siano salvati in un blocco note, o da qualche altra parte? Non è troppo complicato ed è possibile?
dkfl.zrjdktdbx: Buon pomeriggio! Rispetto a tutti i membri del forum! Se puoi, ti prego di avvisare - quando si spegne la piattaforma i dati della rivista vengono necessariamente cancellati, giusto? E come si fa a scrivere le stampe o qualsiasi altro dato in uscita dall'Expert Advisor, in modo che quando si spegne il computer, siano salvati in un blocco note, o da qualche altra parte? Non è troppo complicato ed è possibile?
Beh, se guardate i log nella cartella del programma, vi troverete un sacco di cose interessanti.
sss2019: Dimmi come calcolare una possibile perdita nella valuta del deposito con il prezzo di apertura dell'ordine e il prezzo di stop loss.
//--------------------------------------------------------------------// Функция модификации StopLoss всех ордеров указанного типа// Глобальные переменные:// Mas_Ord_New Массив ордеров последний известный// int TralingStop Значение TralingStop(количество пунктов)//--------------------------------------------------------------------void SampleTrailing_texbook ( int Tip, double V_StopLossPips, double V_TakeProfitPips)
{
int Ticket; // Номер ордераdouble
Price, // Цена открытия рыночного ордера
TS, // TralingStop (относит.знач.цены)
SL, // Значение StopLoss ордера
TP; // Значение TakeProfit ордераdouble difference; //разность в пунктах double Profit;
bool Modify; // Признак необходимости модифи.//----------------------------------------------------------------------
PointValue=MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE));
Print("PointValue = ",PointValue, " Point = ", DoubleToStr(Point, Digits) );
Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL ); // мин уровень трала
Modify=false; // Пока не назначен к модифи
Price = OrderOpenPrice(); // Цена открытия ордера
SL = V_StopLossPips; // Значение StopLoss ордера
TP = V_TakeProfitPips; // Значение TakeProft ордера
Ticket= OrderTicket(); // Номер ордераif (TralingStop<Level_new) // Если меньше допустимого..
TralingStop=Level_new; // .. то допустимый
TS=TralingStop*Point; // То же в относит.знач.цены//-----------------------------------------------------------------switch(Tip) // Переход на тип ордера
{
case0 : // Ордер Buy
difference = NormalizeDouble (Bid-TS - OrderOpenPrice(), Digits)/Point;
Profit = Lots_New * difference*PointValue; // Профит по УРОВНЮ ТРАЛА рыночного ордера на данном объеме (не путать c OrderProfit)if (trlinloss==false){ // тралим только профитif (Profit>MathAbs (Sum_Loss)) // если профит по уровню трала больше суммарного убытка предыдущих поз if (NormalizeDouble(SL,Digits)<// Если ниже желаемого..
NormalizeDouble(Bid-TS,Digits) && NormalizeDouble(Price,Digits)< NormalizeDouble(Bid-TS,Digits))
{ // ..то модифицируем его:
SL=Bid-TS; // Новый его StopLoss
Modify=true; // Назначен к модифи.
}
}
else { // тралим с зоны лоссовif (NormalizeDouble(SL,Digits)<// Если ниже желаемого..
NormalizeDouble(Bid-TS,Digits))
{ // ..то модифицируем его:
SL=Bid-TS; // Новый его StopLoss
Modify=true; // Назначен к модифи.
}
}
break; // Выход из switchcase1 : // Ордер Sell
difference = NormalizeDouble (OrderOpenPrice()-(Ask+TS),Digits)/Point;
Profit = Lots_New * difference*PointValue; // Профит по УРОВНЮ ТРАЛА рыночного ордера на данном объеме (не путать c OrderProfit) if (trlinloss==false) { // тралим с уровня профита по ордеруif (Profit>MathAbs (Sum_Loss)) // если профит по уровню трала больше суммарного убытка предыдущих поз if ((NormalizeDouble(SL,Digits)> // Если выше желаемого..
NormalizeDouble(Ask+TS,Digits)||
NormalizeDouble(SL,Digits)==0) && NormalizeDouble(Price,Digits)>NormalizeDouble(Ask+TS,Digits)) //.. или нулевой(!)
{ // ..то модифицируем его
SL=Ask+TS; // Новый его StopLoss
Modify=true; // Назначен к модифи.
}
}
else { // тралим с зоны лоссовif (NormalizeDouble(SL,Digits)>// Если выше желаемого..
NormalizeDouble(Ask+TS,Digits)||
NormalizeDouble(SL,Digits)==0)//.. или нулевой(!)
{ // ..то модифицируем его
SL=Ask+TS; // Новый его StopLoss
Modify=true; // Назначен к модифи.
}
}
} // Конец switchif (Modify==false) // Если его не надо модифи..return; // ..то идём по циклу дальшеbool Ans=OrderModify(Ticket,Price,SL,TP,0);//Модифицируем его!//----------------------------------------------------------------------if (Ans==false) // Не получилось :(
{ // Поинтересуемся ошибками:
Print("Не удалось модифицировать ордер №",OrderTicket(),". Ошибка: ",GetLastError());
return; // .. то уходим.
}
} // Выход из пользов. функции
Questa fi- glia di commerciante dal libro di testo è stata rielaborata da me per le mie esigenze. Qui, il calcolo del profitto su un dato volume di lotti, a livello di trawl e il valore del profitto sopra la perdita totale delle precedenti posizioni consecutive perdenti chiuse - il trawl è abilitato - avrete tutto simile, solo per applicare non un profitto, come qui, ma una perdita - come avete bisogno.
Fate attenzione al calcolo delle variabili di acquisto e vendita:
double difference; //разность в пунктах double Profit;
PointValue=MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE));
int iHighest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)
Restituisce l'indice del valore più alto trovato (offset rispetto alla barra corrente).Cosa potrebbe essere poco chiaro per una persona - non lo so. Non so nemmeno cosa abbia causato l'aggressione e la cafonaggine (avrebbero potuto semplicemente ignorarlo), se gli altri avrebbero reagito o se si sarebbe ripreso da solo - per te è lo stesso?
Eccoli qui (ci sono molti più errori nel tuo codice, ma questi non passeranno nemmeno attraverso il compilatore): inoltre, anche se cambi il codice in qualcosa di più sano dal punto di vista del compilatore
sarà ancora teoricamente sbagliato senza aver prima normalizzato i valori reali prima del confronto. Inoltre, la normalizzazione può fallire se il prezzo cambia di più di un pip in un tick e la tua condizione viene mancata.
Il modo corretto di cercare la condizione di attraversamento è
P.S. È abbastanza facile trovare il posto con l'errore dopo la compilazione in MetaTrader:
1. Nella scheda "Toolbox", nella colonna "File", specificate il numero di riga e il numero del simbolo in cui il compilatore ha rilevato un errore, separati da virgole.
2. Se fate doppio clic sul messaggio di errore nel campo "Descrizione" della stessa scheda, il cursore dell'editor salterà al punto in cui il compilatore ha rilevato proprio questo errore.
Grazie per i suggerimenti.
Buon pomeriggio! Rispetto a tutti i membri del forum! Se puoi, ti prego di avvisare - quando si spegne la piattaforma i dati della rivista vengono necessariamente cancellati, giusto? E come si fa a scrivere le stampe o qualsiasi altro dato in uscita dall'Expert Advisor, in modo che quando si spegne il computer, siano salvati in un blocco note, o da qualche altra parte? Non è troppo complicato ed è possibile?
Dimmi come calcolare una possibile perdita nella valuta del deposito con il prezzo di apertura dell'ordine e il prezzo di stop loss.
Questa fi- glia di commerciante dal libro di testo è stata rielaborata da me per le mie esigenze. Qui, il calcolo del profitto su un dato volume di lotti, a livello di trawl e il valore del profitto sopra la perdita totale delle precedenti posizioni consecutive perdenti chiuse - il trawl è abilitato - avrete tutto simile, solo per applicare non un profitto, come qui, ma una perdita - come avete bisogno.
Fate attenzione al calcolo delle variabili di acquisto e vendita:
Fate tutto allo stesso modo e basta.Quindi non ho ancora capito come trovare il valore dei punti nella valuta di deposito?
vedere questo calcolo - fare ANALOGO. Tutto.