Link_x: Ciao! C'è una funzione nella funzione "Kim" che calcola l'ammontare del profitto dell'ultimo ordine aperto?
Non l'ho trovato, ora sono perplesso su una funzione fatta in casa che calcola il margine di profitto dell'ultimo ordine aperto.
OrdineProfitto()
Se avete bisogno esattamente dell'ultimo ordine aperto, allora passate attraverso tutti gli ordini e scegliete quello che è l 'ultimo, poi usate la funzione di cui sopra, che vi restituirà il profitto netto di questo ordine
Se hai bisogno esattamente dell'ultimo ordine aperto, allora passa attraverso tutti gli ordini e scegli quello con l'ultimo tempo di apertura, poi usa la funzione di cui sopra, che ti restituirà il profitto netto di questo ordine
Come ottengo una risposta appena in tempo, proprio nel momento in cui trovo una soluzione. :)
Ekburg К сожалению времени и возможности написать Вам готовый код нет, так как я на работе нахожусь))
Non si cerca per storia, ma per posizioni attuali, qui c'è una catena logica basata su cui si può provare a scrivere del codice:
[blocco di lavorare con muwings e fare un ordine]
1 ricordare il biglietto e il numero magico dell'ordine effettuato
2 monitorare il numero di ordini e se non ci sono ordini nel mercato (significa che il nostro ordine è stato chiuso), allora passare al punto3 o monitorare questo ordine specifico fino a quando il suo tempo di chiusura è più di zero, nel qual caso si escludono i punti 3 e 4
3 trovare il nostro ordine
4 scoprire se è chiuso
5 scoprire come è stato chiuso
6 se è stato chiuso attraverso uno stop, impostare un altro ordine diverso da esso nella direzione
//+------------------------------------------------------------------+//| 123.mq4 |//| Copyright 2014, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright"Copyright 2014, MetaQuotes Software Corp."#property link"http://www.metaquotes.net"externdouble Lots = 0.1;
externdouble TakeProfit = 100;
externdouble StopLoss = 100;
externdouble TrailingStop = 50;
externdouble Margincutoff = 100;
externdouble MagicNumber = 12345;
externdouble TradeSizePercent = 5;
externint Slippage = 10;
//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
//----//----return(0);
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return(0);
}
int Crossed (double line1, double line2)
{
staticint last_direction=0;
staticint current_direction=0;
if (line1>line2)current_direction=1;// пересечение вверхif (line1<line2)current_direction=2;// пересечение внизif (current_direction!=last_direction)//изменения произошли
{
last_direction=current_direction;
return(last_direction);
}
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
int cnt, ticket, total, totalhistory, memoryticket;
double shortEMA, longEMA;
if(Bars<100)
{
Print("Bars less than 100");
return(0);
}
shortEMA=iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0);
longEMA=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);
int isCrossed=Crossed(shortEMA, longEMA);
//----
total=OrdersTotal();
if(total<1)
{
// нет открытых ордеровif(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
// проверяем пересечение МА для открытия позиции на покупкуif(isCrossed==1)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"МА",12345,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
memoryticket= OrderTicket();// запомнили тикетPrint("BUY order opened : ",OrderOpenPrice());
}
elsePrint("Error opening BUY order : ",GetLastError());
return(0);
}
//проверяем пересечение МА для открытия позиции на продажуif(isCrossed==2)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"MA",12345,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
memoryticket= OrderTicket();// запомнили тикетPrint("SELL order opened : ",OrderOpenPrice());
}
elsePrint("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
//----начинаем искать закрытые ордера//инициализация параметровint old_order_type;
RefreshRates();
//нет открытых ордеров - ищем в истории закрытых ордеров последний закрытый именно этим советником ордер for ( totalhistory = OrdersHistoryTotal() - 1; totalhistory >= 0; totalhistory-- )
{
if ( OrderSelect(totalhistory, SELECT_BY_TICKET, MODE_HISTORY) && OrderTicket() == memoryticket && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() )
{
old_order_type = OrderType();
if ( OrderProfit()<0 ) //последний закрытый советником ордер был убыточным, значит, следующий ордер открываем в направлении, противоположном закрытому с убытком
{
break; //прекращаем поиск
}
}
}
//если раньше покупали, то теперь продаемif ( old_order_type == OP_BUY )
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"MA",12345,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
memoryticket= OrderTicket();// запомнили тикетPrint("SELL order opened : ",OrderOpenPrice());
}
elsePrint("Error opening SELL order : ",GetLastError());
return(0);
}
//если раньше продавали, то теперь покупаемif ( old_order_type == OP_SELL )
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"МА",12345,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
memoryticket= OrderTicket();// запомнили тикетPrint("BUY order opened : ",OrderOpenPrice());
}
elsePrint("Error opening BUY order : ",GetLastError());
return(0);
}
return(0);
}
//+------------------------------------------------------------------+
Questo è quello che ho. Apre davvero 3 lotti. Sono davvero fregato. Puoi correggere il codice? Cosa c'è che non va?
Sono stufo di fare queste domande (incredibilmente snervanti, pi****, scusate (variabili del cazzo che non riesco a trovare (soprattutto fastidiose, quello che non riesco a trovare io)).
Quale variabile è responsabile del valore attuale del prezzo? Ho cercato la documentazione, non c'è nulla tranne Bid, Ask, POINT_HIGH, POINT_LOW. Esiste una tale variabile?
Link_x: Sono stufo di fare queste domande (incredibilmente snervanti, pi****, scusate (variabili del cazzo che non riesco a trovare (soprattutto fastidiose, quello che non riesco a trovare io)).
Quale variabile è responsabile del valore attuale del prezzo? Ho cercato la documentazione, non c'è nulla tranne Bid, Ask, POINT_HIGH, POINT_LOW. Esiste una tale variabile?
Avete notato come cambia il prezzo nella finestra "Market Watch"? Puoi vedere lì i prezzi Bid e Ask. Il primo è usato per vendere e il secondo per comprare.
khorosh: Avete notato come cambia il prezzo nella finestra di Market Watch? Lì puoi vedere il Bid e l'Ask - questi sono i prezzi attuali. Il primo è usato per vendere e il secondo per comprare.
Esattamente! Ho dimenticato una cosa così piccola!
Forse dovresti provare a rispondere alle domande degli altri invece di fare le tue. I benefici sono molto più grandi (fino a un certo punto), certamente i benefici per te stesso
Ciao!
C'è una funzione nella funzione "Kim" che calcola l'ammontare del profitto dell'ultimo ordine aperto?
Non l'ho trovato, ora sono perplesso su una funzione fatta in casa che calcola il margine di profitto dell'ultimo ordine aperto.
OrdineProfitto()
Se avete bisogno esattamente dell'ultimo ordine aperto, allora passate attraverso tutti gli ordini e scegliete quello che è l 'ultimo, poi usate la funzione di cui sopra, che vi restituirà il profitto netto di questo ordine
OrdineProfitto()
Se hai bisogno esattamente dell'ultimo ordine aperto, allora passa attraverso tutti gli ordini e scegli quello con l'ultimo tempo di apertura, poi usa la funzione di cui sopra, che ti restituirà il profitto netto di questo ordine
Come ottengo una risposta appena in tempo, proprio nel momento in cui trovo una soluzione. :)
Ma grazie lo stesso!
Ekburg К сожалению времени и возможности написать Вам готовый код нет, так как я на работе нахожусь))
Non si cerca per storia, ma per posizioni attuali, qui c'è una catena logica basata su cui si può provare a scrivere del codice:
[blocco di lavorare con muwings e fare un ordine]
1 ricordare il biglietto e il numero magico dell'ordine effettuato
2 monitorare il numero di ordini e se non ci sono ordini nel mercato (significa che il nostro ordine è stato chiuso), allora passare al punto3 o monitorare questo ordine specifico fino a quando il suo tempo di chiusura è più di zero, nel qual caso si escludono i punti 3 e 4
3 trovare il nostro ordine
4 scoprire se è chiuso
5 scoprire come è stato chiuso
6 se è stato chiuso attraverso uno stop, impostare un altro ordine diverso da esso nella direzione
Questo è quello che ho. Apre davvero 3 lotti. Sono davvero fregato. Puoi correggere il codice? Cosa c'è che non va?
Quale variabile è responsabile del valore attuale del prezzo?
Ho cercato la documentazione, non c'è nulla tranne Bid, Ask, POINT_HIGH, POINT_LOW.
Esiste una tale variabile?
Sono stufo di fare queste domande (incredibilmente snervanti, pi****, scusate (variabili del cazzo che non riesco a trovare (soprattutto fastidiose, quello che non riesco a trovare io)).
Quale variabile è responsabile del valore attuale del prezzo?
Ho cercato la documentazione, non c'è nulla tranne Bid, Ask, POINT_HIGH, POINT_LOW.
Esiste una tale variabile?
Come tempestivamente ricevo una risposta, proprio quando trovo una soluzione. :)
Avete notato come cambia il prezzo nella finestra di Market Watch? Lì puoi vedere il Bid e l'Ask - questi sono i prezzi attuali. Il primo è usato per vendere e il secondo per comprare.
Ho dimenticato una cosa così piccola!
La soluzione è: "Non avere fretta di fare domande". E, considerando che non sempre si ottengono risposte competenti... :)))
Proprio così!!!
Ho dimenticato una cosa così piccola!!!
Sì, sì. :)
Forse dovresti provare a rispondere alle domande degli altri invece di fare le tue. I benefici sono molto più grandi (fino a un certo punto), certamente i benefici per te stesso