sabato 23 aprile 2011

Expert Advisor Consigliati

Lasciate perdere ogni altro expert advisor per il forex!!



QUESTO VI FARA' VERAMENTE PIU' RICCHI!!!

giovedì 6 gennaio 2011

Hedging nel Forex

Per coloro che non hanno familiarità con il mercato Forex, la parola "copertura" poteva significare assolutamente nulla. Tuttavia, coloro che sono operatori abituali sanno che ci sono molti modi di usare questo termine nel trading. Il più delle volte quando si sente questa frase significa che si sta tentando di ridurre il rischio nelle operazione di trading. E' qualcosa che tutti coloro che prevedono di investire nel Forex dovrebbero conoscere. Si tratta di una tecnica che può proteggere il proprio investimento in una certa misura.

Che cos'è?

Mentre il termine copertura è molto popolare, nel trading può apparire un po' misterioso. E' molto simile a un piano di assicurazione. Quando trada, vi assicura in caso possa verificarsi un evento avverso. Questo non significa che quando si verifica un evento negativo di uscirne completamente indenni. Significa solo che se si mette in atto correttamente, non si riscontrerò un impatto troppo devastante. Pensate alla vostra assicurazione auto. Si stipula in caso che succeda un qualsiasi incidente. Non impedisce che accadano gli incidenti, ma se sfortunatamente si verificano, si è in grado di reagire molto meglio se non si fosse assicurati.

Chiunque si immetta nel trading dovrebbe imparare come protteggersi facendo copertura con l'Hedging. Dalle grandi società ai piccoli investitori individuali, la copertura è qualcosa che è ampiamente praticata. Il modo in cui lo fanno comporta l'uso di strumenti di mercato per compensare il rischio di qualsiasi movimento negativo dei prezzi. Il modo più semplice per farlo è a copertura di un investimento con un altro investimento. Per esempio, il modo che la maggior parte degli investitori adotta, è di investire in due cose diverse con correlazioni negative.


Per alcuni può essere costoso in termini di tempo impiegato, tuttavia, la protezione che si ottiene è largamente ripagata. Quando si inizia a saperne di più sull'hedging, si inizia a capire perché molte persone non sanno esattamente di cosa si tratta. Le tecniche utilizzate per finalità di copertura sono effettuate utilizzando i derivati. Questi sono complicati strumenti di finanziamento e più spesso utilizzati solo dagli investitori esperti.

C'è un rovescio della medaglia?

Quando si decide di fare copertura/hedging, si deve ricordare che si tratta di dover sostenere un costo aggiuntivo. Si dovrebbe sempre essere sicuri che i benefici che si ottengono da un hedge dovrebbero essere più che sufficiente perché ne valga la pena. È necessario assicurarsi che la spesa sia giustificata. Se non lo è, allora non si faccia hedging. L'obiettivo di copertura non è per fare pià soldi. Non si faranno grandi guadagni dalla copertura. La copertura è destinata ad essere utilizzata solo per proteggere le vostre eventuali perdite.

La perdita non può essere evitata, ma la copertura può offrire un po' di sollievo. Tuttavia, anche se nulla di negativo accadesse, si dovrà comunque pagare per la copertura. A differenza di un'assicurazione, non si è mai compensati per l'hedge. Le cose possono andare male anche con l'hedge e non sempre vi proteggerà come si vorrebbe.


Tenete a mente che la maggior parte degli investitori non hanno mai utilizzato l'hedging nella loro carriera di negoziazione. Infatti, fluttuazioni di breve periodo è qualcosa che la maggior parte degli investitori non si preoccupano. Pertanto, la copertura può essere inutile. Anche se si sceglie di non fare hedge tuttavia, imparare la tecnica è un ottimo modo per capire il mercato un po' di più. Quando vedrete le grandi compagnie o grossi investitori utilizzare questo sistema non sarete più confusi e capirete perché staranno agendo in quel modo. Conoscendo questa tecnica, saprete allora comprendere meglio le loro strategie di negoziazione nel forex o in qualunque altro ambito di mercato.

Quindi, se si decide di utilizzare l'hedging a vostro vantaggio, questa sarà considerata come come una polizza di assicurazione durante il trading. Si dovrebbe ricordare, tuttavia, che la copertura ha un costo. Verificare sempre che i costi di copertura non siano superiori agli utili che si possono o non si possono fare. Assicurarsi che tali costi siano sostenibili e che il tuo bisogno di copertura sia anch'esso reale. Sarete così in grado di utilizzare la copertura per ridurre le potenziali perdite, ma la copertura non sarà mai una protezione totale. Impararla, tuttavia, vi darà una migliore comprensione di come i grandi investitori operano nel sistema, e a sua volta può farvi diventare un miglior trader nel forex.

venerdì 31 dicembre 2010

Expert Advisor Builder - Importante Utilita Per Il Forex Automatico

Il seguente link http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ rappresenta una grande risorsa per il trading automatico.

Presuppone che l'utilizzatore abbia chiara una sua strategia per l'apertura e la chiusura delle posizioni.

Lo strumento mette a disposizione di tutti, i più noti indicatori su cui basare le proprie strategie, potendoli programmare a piacimento. Possono essere usati in cascata o singolarmente. Sia per il "buy", per il "sell" o per il "close".

Ha una struttura preordinata molto valida e comunque utilizzabile da chiunque abbia dimestichezza con il linguaggio "MQ4", e che voglia solo concentrarsi sulla prorpia strategia, senza occuparsi troppo di quella parte di base e iniziale del codice, in ogni caso necessaria e propedeutica a resto.

Probabilmente invoglierà qualcuno anche a voler approfondire la funzionalità dei vari indicatori, sperimentando quelli di maggior corrispondenza con la propria personale visione dell'andamento del mercato valutario.

domenica 12 dicembre 2010

Un Vincente EA a Martingala, Ilan Hilo RSI

Gli expert advisor progettati con la strategia a martingala, sono dei robot molto profittevoli nel breve periodo ma, nello stesso tempo, sono come un rivoltella con cui "giocaste" alla roulette russa.

Un modo per abbassare il rischio di tali ea, è un'adeguata equity (per ricoprire i momenti di alto draw down), e un dimensionamento opportuno del moltiplicatore dei lotti. Infatti, non è necessario raddoppiare il lotto iniziale e gli altri a seguire, ma è sufficiente che il programma faccia una moltiplicazione per un coefficiente molto più basso. Ad esempio, un buon fattore di moltiplicazione è 1,25. Questo permette, con un massimo di 10 posizioni, di raggiungere il massimo dei 10 lotti che si possono aprire con ciascuna posizione al fine di rincorrere le fluttuazioni fino al ritracciamento che chiuda in "gain" una serie.

Il codice che allego di seguito è un ea reperibile liberamente in Rete, e che, data la sua semplicità, può essere facilmente settato e provato, facendoci rendere meglio conto di cosa siano e quali sono i limiti e i rischi, ma anche i vantaggi rispetto a ea complicatissimi e sicuramente meno prifittevoli di questo:

fate il copia e incolla su un file di testo vuoto e rinominatelo come volete, ma ricordatevi che l'estensione deve essere, ovviamente, .mq4:

//==========================================================================================================================
#property copyright "BETSAFE"
#property link "http://beam.to/betsafe" // "WEBSITE"
//==========================================================================================================================
extern double LotExponent = 1.55;
extern double Lots = 0.01;
extern int lotdecimal = 2;
extern double TakeProfit = 10.0;
extern double PipStep = 10.0;
extern double slip = 3.0;
extern int MaxTrades = 8;
extern int MagicNumber = 111;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool UseEquityStop = FALSE;
double TotalEquityRisk = 20.0;
bool UseTrailingStop = FALSE;
bool UseTimeOut = FALSE;
double MaxTradeOpenHours = 48.0;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double Stoploss = 5000.0;
double TrailStart = 100.0;
double TrailStop = 100.0;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double PriceTarget, StartEquity, BuyTarget, SellTarget ;
double AveragePrice, SellLimit, BuyLimit ;
double LastBuyPrice, LastSellPrice, Spread;
bool flag;
string EAName = "Ilan_HiLo_RSI";
int timeprev = 0, expiration;
int NumOfTrades = 0;
double iLots;
int cnt = 0, total;
double Stopper = 0.0;
bool TradeNow = FALSE, LongTrade = FALSE, ShortTrade = FALSE;
int ticket;
bool NewOrdersPlaced = FALSE;
double AccountEquityHighAmt, PrevEquity;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int init() {
Spread = MarketInfo(Symbol(), MODE_SPREAD) * Point;
return (0);
}

int deinit() {
return (0);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int start() {
double PrevCl;
double CurrCl;
if (UseTrailingStop) TrailingAlls(TrailStart, TrailStop, AveragePrice);
if (UseTimeOut) {
if (TimeCurrent() >= expiration) {
CloseThisSymbolAll();
Print("Closed All due to TimeOut");
}
}
if (timeprev == Time[0]) return (0);
timeprev = Time[0];
double CurrentPairProfit = CalculateProfit();
if (UseEquityStop) {
if (CurrentPairProfit < 0.0 && MathAbs(CurrentPairProfit) > TotalEquityRisk / 100.0 * AccountEquityHigh()) {
CloseThisSymbolAll();
Print("Closed All due to Stop Out");
NewOrdersPlaced = FALSE;
}
}
total = CountTrades();
if (total == 0) flag = FALSE;
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) {
LongTrade = TRUE;
ShortTrade = FALSE;
break;
}
}
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_SELL) {
LongTrade = FALSE;
ShortTrade = TRUE;
break;
}
}
}
if (total > 0 && total <= MaxTrades) {
RefreshRates();
LastBuyPrice = FindLastBuyPrice();
LastSellPrice = FindLastSellPrice();
if (LongTrade && LastBuyPrice - Ask >= PipStep * Point) TradeNow = TRUE;
if (ShortTrade && Bid - LastSellPrice >= PipStep * Point) TradeNow = TRUE;
}
if (total < 1) {
ShortTrade = FALSE;
LongTrade = FALSE;
TradeNow = TRUE;
StartEquity = AccountEquity();
}
if (TradeNow) {
LastBuyPrice = FindLastBuyPrice();
LastSellPrice = FindLastSellPrice();
if (ShortTrade) {
NumOfTrades = total;
iLots = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTrades), lotdecimal);
RefreshRates();
ticket = OpenPendingOrder(1, iLots, Bid, slip, Ask, 0, 0, EAName + "-" + NumOfTrades, MagicNumber, 0, HotPink);
if (ticket < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastSellPrice = FindLastSellPrice();
TradeNow = FALSE;
NewOrdersPlaced = TRUE;
} else {
if (LongTrade) {
NumOfTrades = total;
iLots = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTrades), lotdecimal);
ticket = OpenPendingOrder(0, iLots, Ask, slip, Bid, 0, 0, EAName + "-" + NumOfTrades, MagicNumber, 0, Lime);
if (ticket < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastBuyPrice = FindLastBuyPrice();
TradeNow = FALSE;
NewOrdersPlaced = TRUE;
}
}
}
if (TradeNow && total < 1) {
PrevCl = iHigh(Symbol(), 0, 1);
CurrCl = iLow(Symbol(), 0, 2);
SellLimit = Bid;
BuyLimit = Ask;
if (!ShortTrade && !LongTrade) {
NumOfTrades = total;
iLots = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTrades), lotdecimal);
if (PrevCl > CurrCl) {

//HHHHHHHH~~~~~~~~~~~~~ Èíäþê RSI ~~~~~~~~~~HHHHHHHHH~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (iRSI(NULL, PERIOD_H1, 14, PRICE_CLOSE, 1) > 30.0) {
ticket = OpenPendingOrder(1, iLots, SellLimit, slip, SellLimit, 0, 0, EAName + "-" + NumOfTrades, MagicNumber, 0, HotPink);
if (ticket < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastBuyPrice = FindLastBuyPrice();
NewOrdersPlaced = TRUE;
}
} else {

//HHHHHHHH~~~~~~~~~~~~~ Èíäþê RSI ~~~~~~~~~HHHHHHHHHH~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (iRSI(NULL, PERIOD_H1, 14, PRICE_CLOSE, 1) < 70.0) {
ticket = OpenPendingOrder(0, iLots, BuyLimit, slip, BuyLimit, 0, 0, EAName + "-" + NumOfTrades, MagicNumber, 0, Lime);
if (ticket < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastSellPrice = FindLastSellPrice();
NewOrdersPlaced = TRUE;
}
}
//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï
if (ticket > 0) expiration = TimeCurrent() + 60.0 * (60.0 * MaxTradeOpenHours);
TradeNow = FALSE;
}
}
total = CountTrades();
AveragePrice = 0;
double Count = 0;
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
AveragePrice += OrderOpenPrice() * OrderLots();
Count += OrderLots();
}
}
}
if (total > 0) AveragePrice = NormalizeDouble(AveragePrice / Count, Digits);
if (NewOrdersPlaced) {
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) {
PriceTarget = AveragePrice + TakeProfit * Point;
BuyTarget = PriceTarget;
Stopper = AveragePrice - Stoploss * Point;
flag = TRUE;
}
}
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_SELL) {
PriceTarget = AveragePrice - TakeProfit * Point;
SellTarget = PriceTarget;
Stopper = AveragePrice + Stoploss * Point;
flag = TRUE;
}
}
}
}
if (NewOrdersPlaced) {
if (flag == TRUE) {
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) OrderModify(OrderTicket(), AveragePrice, OrderStopLoss(), PriceTarget, 0, Yellow);
NewOrdersPlaced = FALSE;
}
}
}
return (0);
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

int CountTrades() {
int count = 0;
for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if (OrderType() == OP_SELL || OrderType() == OP_BUY) count++;
}
return (count);
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

void CloseThisSymbolAll() {
for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
}
Sleep(1000);
}
}
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

int OpenPendingOrder(int pType, double pLots, double pPrice, int pSlippage, double pr, int sl, int tp, string pComment, int pMagic, int pDatetime, color pColor) {
int ticket = 0;
int err = 0;
int c = 0;
int NumberOfTries = 100;
switch (pType) {
case 2:
for (c = 0; c < NumberOfTries; c++) {
ticket = OrderSend(Symbol(), OP_BUYLIMIT, pLots, pPrice, pSlippage, StopLong(pr, sl), TakeLong(pPrice, tp), pComment, pMagic, pDatetime, pColor);
err = GetLastError();
if (err == 0/* NO_ERROR */) break;
if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
Sleep(1000);
}
break;
case 4:
for (c = 0; c < NumberOfTries; c++) {
ticket = OrderSend(Symbol(), OP_BUYSTOP, pLots, pPrice, pSlippage, StopLong(pr, sl), TakeLong(pPrice, tp), pComment, pMagic, pDatetime, pColor);
err = GetLastError();
if (err == 0/* NO_ERROR */) break;
if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
Sleep(5000);
}
break;
case 0:
for (c = 0; c < NumberOfTries; c++) {
RefreshRates();
ticket = OrderSend(Symbol(), OP_BUY, pLots, Ask, pSlippage, StopLong(Bid, sl), TakeLong(Ask, tp), pComment, pMagic, pDatetime, pColor);
err = GetLastError();
if (err == 0/* NO_ERROR */) break;
if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
Sleep(5000);
}
break;
case 3:
for (c = 0; c < NumberOfTries; c++) {
ticket = OrderSend(Symbol(), OP_SELLLIMIT, pLots, pPrice, pSlippage, StopShort(pr, sl), TakeShort(pPrice, tp), pComment, pMagic, pDatetime, pColor);
err = GetLastError();
if (err == 0/* NO_ERROR */) break;
if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
Sleep(5000);
}
break;
case 5:
for (c = 0; c < NumberOfTries; c++) {
ticket = OrderSend(Symbol(), OP_SELLSTOP, pLots, pPrice, pSlippage, StopShort(pr, sl), TakeShort(pPrice, tp), pComment, pMagic, pDatetime, pColor);
err = GetLastError();
if (err == 0/* NO_ERROR */) break;
if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
Sleep(5000);
}
break;
case 1:
for (c = 0; c < NumberOfTries; c++) {
ticket = OrderSend(Symbol(), OP_SELL, pLots, Bid, pSlippage, StopShort(Ask, sl), TakeShort(Bid, tp), pComment, pMagic, pDatetime, pColor);
err = GetLastError();
if (err == 0/* NO_ERROR */) break;
if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
Sleep(5000);
}
}
return (ticket);
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï
double StopLong(double price, int stop) {
if (stop == 0) return (0);
else return (price - stop * Point);
}
//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï
double StopShort(double price, int stop) {
if (stop == 0) return (0);
else return (price + stop * Point);
}
//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï
double TakeLong(double price, int stop) {
if (stop == 0) return (0);
else return (price + stop * Point);
}
//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï
double TakeShort(double price, int stop) {
if (stop == 0) return (0);
else return (price - stop * Point);
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

double CalculateProfit() {
double Profit = 0;
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
}
return (Profit);
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

void TrailingAlls(int pType, int stop, double AvgPrice) {
int profit;
double stoptrade;
double stopcal;
if (stop != 0) {
for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() || OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) {
profit = NormalizeDouble((Bid - AvgPrice) / Point, 0);
if (profit < pType) continue;
stoptrade = OrderStopLoss();
stopcal = Bid - stop * Point;
if (stoptrade == 0.0 || (stoptrade != 0.0 && stopcal > stoptrade)) OrderModify(OrderTicket(), AvgPrice, stopcal, OrderTakeProfit(), 0, Aqua);
}
if (OrderType() == OP_SELL) {
profit = NormalizeDouble((AvgPrice - Ask) / Point, 0);
if (profit < pType) continue;
stoptrade = OrderStopLoss();
stopcal = Ask + stop * Point;
if (stoptrade == 0.0 || (stoptrade != 0.0 && stopcal < stoptrade)) OrderModify(OrderTicket(), AvgPrice, stopcal, OrderTakeProfit(), 0, Red);
}
}
Sleep(1000);
}
}
}
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

double AccountEquityHigh() {
if (CountTrades() == 0) AccountEquityHighAmt = AccountEquity();
if (AccountEquityHighAmt < PrevEquity) AccountEquityHighAmt = PrevEquity;
else AccountEquityHighAmt = AccountEquity();
PrevEquity = AccountEquity();
return (AccountEquityHighAmt);
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

double FindLastBuyPrice() {
double oldorderopenprice;
int oldticketnumber;
double unused = 0;
int ticketnumber = 0;
for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_BUY) {
oldticketnumber = OrderTicket();
if (oldticketnumber > ticketnumber) {
oldorderopenprice = OrderOpenPrice();
unused = oldorderopenprice;
ticketnumber = oldticketnumber;
}
}
}
return (oldorderopenprice);
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

double FindLastSellPrice() {
double oldorderopenprice;
int oldticketnumber;
double unused = 0;
int ticketnumber = 0;
for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_SELL) {
oldticketnumber = OrderTicket();
if (oldticketnumber > ticketnumber) {
oldorderopenprice = OrderOpenPrice();
unused = oldorderopenprice;
ticketnumber = oldticketnumber;
}
}
}
return (oldorderopenprice);
}

//ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï

martedì 25 agosto 2009

Come scegliere il broker migliore?

Ci sono una serie di fattori importanti da considerare per decidere il broker più adatto alle vostre aspettative.

Supponendo che tu sia un principiante, non sarai in possesso di una esperienza di trading o di simili rischiose attività, e ogni singola concessione che si può ottenere dal broker è un vantaggio nel trading che aumenta le probabilità di migliorare la redditività.

Poiché è altamente probabile che all’inizio della tua carriera avrai problemi e delusioni (dopo tutto, non si impara a nuotare al primo tentativo!), si devono prendere gli accorgimenti necessari per ridurre al minimo il rischio, e uno degli aspetti più importanti è la scelta giusta del broker.

Ci sono un paio di cose che possono aiutarti nel processo di selezione che riporto qui di seguito.

Il deposito minimo e la leva

Questi sono alcuni degli aspetti più importanti di un conto forex per un principiante. Un trader all’inizio probabilmente subirà delle perdite, e minore è il deposito minimo richiesto, minore saranno le perdite. A causa della vastità e la profondità del mercato forex, non c'è assolutamente alcuna ragione per iniziare la negoziazione con un grosso importo. Si può iniziare con $ 10, si può iniziare con $ 1000, il mercato sarà in grado di assimilare qualsiasi dimensione in un batter d'occhio. E inoltre, come ci si sposta da $ 10 a $ 1000 nel vostro conto, non vi è alcuna differenza nel modo in cui il mercato si comporterà. I vostri ordini saranno irrilevanti per il mercato, e la vostra esperienza sarà ugualmente proficua. Di conseguenza, è sempre una buona idea quella di iniziare con somme molto piccole, e, naturalmente, con leva bassa, e una volta che si raggiunga il successo voluto, è possibile aggiungere altri fondi al tuo account. Chiaramente, è necessario assicurarsi di scegliere un broker i cui requisiti minimi di deposito siano basse e adatte per un principiante.

Tempo di funzionamento

Questo aspetto è legato alla sicurezza del broker. Se l'impresa è in funzione da lungo tempo, è probabile che sia più affidabile, perché è stato lungamente esaminato e disciplinato da parte delle autorità nel corso della sua esistenza, ed è stato trovato essere un mediatore regolare. La prolungata esistenza non è certo una garanzia assoluta contro le frodi e imbrogli, ma è un ulteriore elemento di sicurezza, oltre agli altri aspetti.

Supporto per principianti

Infine, alcuni brokers sono particolarmente disponibili per principianti e offrono molte risorse e assistenza per aiutare il processo di apprendimento. Alcuni di loro arrivano al punto di fornire un proprio assistente personale per l'apertura di un conto. Dal momento che questo tipo di generosità, non può che essere benefico, un trader novizio è invitato a cercare i brokers che offrono tali servizi.

Per concludere, la scelta del broker è un passo importante nella carriera di un trader, e dovrebbe essere affrontato con la dovuta diligenza e responsabilità. Un broker incompetente può rapidamente compromettere tutte le possibilità di successo per voi, dedicate un pò di tempo in più per trovare quello che è più onesto ed efficiente.

mercoledì 1 luglio 2009

Lo Stop Loss in Real

Ci sono Expert Advisor che quando aprono una posizione non stabiliscono il prezzo per l'uscita, lo stop loss. Utilizzandoli in un account demo, si nota che se ci si imbatte in un forte cambio di tendenza, la perdita va oltre la peggiore aspettativa e si deve ricorrere alla chiusura manuale e registrare un lossone pazzesco! Ma i soldi sono finti e il "dolore" sarà solo dato dall'aver verificato l'ennesimo EA che non funziona!

Ma quando i soldi sono veri, di tasca nostra, il dolore è molto ma molto più acuto e straziante!!
C'è, però, un lato positivo questa volta: anche se il nostro EA non usa gli SL, la posizione verrà comunque chiusa dal broker esattamente quando "si rende conto" che se dovessi andare ancora in perdita, non avresti più la copertura (il denaro del tuo account), sufficiente.

Questo è uno dei motivi (importanti), per cui si dice che dal Demo al Real è tutta un'altra cosa!

Occhio, quindi ai Robot Forex che lasciano lo stop loss non determinato.

giovedì 4 giugno 2009

Lavorare con e su Internet

Il mio primo articolo su questo blog, discuteva su quanti tentativi di lavoro abbia sperimentato e scoperto essere inutili e non proficui (almeno non come le aspettative). Rispolverando le esperienze fatte, comunque delle precise indicazioni le ho sicuramente tratte e qui le voglio riportare.

Si impara, a proprie spese, e si capisce che molte delle promesse di guadagno facile, "lavorare dormendo" sono tutte sciocchezze!

Quando parliamo di soldi, niente è da prendere alla leggera. Il denaro è una cosa estremamente seria, specie per chi ne ha poco a sua disposizione. Avere poca disponibilità impone la più grande cautela e la massima attenzione agli "investimenti" che si intendono effettuare sulla Rete per guadagnare onestamente.

Non togliete mai risorse se la vostra famiglia non può permetterselo. Lo ripeto: investire su un progetto nella Rete è sempre un rischio e quasi sempre SI PERDONO I PROPRI SOLDI.

Non me la sento di incoraggiare nessuno. Se non avete la debita esperienza, la sola cosa che consiglio è di documentarvi moltissimo. Non acquistate subito dispense americane, ne esistono di decine, di centinaia e anche di migliaia di dollari! Dicono tutte le stesse cose, ripetono le stesse litanie che trovate gratis in molti forum sia stranieri (se conoscete l'inglese), sia italiani. I forum sono, infatti, degli archivi molto preziosi poiché attraverso gli argomenti e come sono trattati, si riesce bene a "captare" strategie e tecniche per fare soldi senza spendere una lira...

Da tutto ciò che ho letto e provato personalmente, una sola tecnica mi ha convinto più di tante altre. E la "svelo" qui e del tutto gratuitamente...

Ve ne renderete conto di quanto sia potente e di come sia l'uovo di Colombo. In pratica l'abbiamo tutti davanti i nostri occhi e tutti i giorni quando riceviamo le email pubblicitarie dopo aver sottoscritto una newsletter di un sito che ci interessa!

Si tratta di pochi step, ma devono essere sviluppati ed eseguiti con la massima cura tecnica. Qualsiasi intoppo tecnico bloccherebbe la "macchina" che si fermerebbe, facendovi perdere tempo e denaro!

Una pagina o un sito completo focalizzato su un prodotto o su un tema a voi familiare. Per scegliere un tema proficuo, fate una ricerca del suo trend della/e principali parole-chiave con questo fantastico e gratuito servizio di Google: Google Trends . Vedrete, così, se il prodotto, la nicchia o quant'altro sia gradito, quanto e anche in quali periodi dell'anno.

Cercate e scaricatevi un e-book sul tema. Ne troverete di gratuiti (CERCATELI e li TROVERETE).

Questo per invogliare i vostri visitatori ad iscriversi alla vostra lista (newsletter).

Quindi: costruire una form con il codice che vi fornirà il vostro fornitore di servizio email marketing o autoresponder (molti di questi servizi offrono una specie di trial gratuito che può essere potenziato a pagamento).

Lo so, molti di voi non avranno gli strumenti tecnici-culturali per quello che sto descrivendo. Se è così e avete voglia di imparare, sappiate che quasi tutto il lavoro è supportato da wizard (operazioni guidate), che vi porteranno facilmente alla méta.

Programmate l'invio di una o più email contenenti il testo pubblicitario e il vostro link-affiliato.
Molti prodotti forniscono agli affiliati, email preconfezionate proprio a questo scopo..

L'obiettivo è quello di compilare una lista di potenziali clienti, tramite l'iscrizione di persone interessate e quindi targhettizzate al fine di una possibile vendita, che può essere raggiunta "convincendoli" in uno degli invii delle vostre newsletter..

Vi ho dato il succo del solo metodo che funziona veramente per divenire soggetti commercialmente attivi della Rete.

Ma scegliete prodotti che anche voi acquistereste! Non promuovete scam o porcherie che si vedono lontano un miglio! Chi naviga in Rete è sempre più scaltro e sgama subito la fregatura! Non durereste tanto, anche perché verreste sommersi dalle richieste di rimborso, azzerando i guadagni..

Nel caso aveste un vostro prodotto, non dovrete dividere l'incasso con nessuno! Per ricevere i pagamenti vi sarà indispensabile PayPal, che mette a disposizione tutto il necessario per il marketing online. Potrete così ricevere pagamenti istantanei da tutte le carte di credito più usate.