DislikedDoes anyone know if arbitrage is easier in the Futures Markt?
What kind of arbitrage would this be? Certainly no TriArb.Ignored
Triangular Arbitrage 16 replies
Nerr Smart Trader - Triangular Arbitrage Trading System 17 replies
Triangular Arbitrage and carry trade 6 replies
Triangular Arbitrage 7 replies
DislikedDoes anyone know if arbitrage is easier in the Futures Markt?
What kind of arbitrage would this be? Certainly no TriArb.Ignored
DislikedKurka, I am not asking for handouts. And please see the new PM I sent you. I hope I'm not wasting my time writing you.
What I think we need is a summary of everything we currently know. It's hard to add new ideas and contribute when we're unsure of some basic things. These things are specific and can't just be Googled. Screenshots and equity curves show little, actually, about the way things work. And as we all know, MT4 isn't that reliable for backtesting. For starters, what are you doing in terms of TP and SL? On one of the screenshots it looked like you were using no SL, which is extraordinarily dangerous because it only takes 1 losing trade to ruin the whole bunch. You mentioned something about reversal signals as well? Is that in place of a fixed TP?
I'm thinking that we should use the OrderReliable functions found in the OrderReliable.mqh (freely available) to place the orders rather than the standard OrderSend function. It's much more efficient.
Also, perhaps we can implement some sort of MM function that will use a fixed percentage of equity, rather than fixed lot size, to place orders with. This will allow for exponential profits, rather than linear.
You mentioned adding an overall higher-trend confirmation and only taking trades in that direction. That seems like a good idea. RSI would suffice for this purpose.Ignored
void SendOrder(){
int ticket=0;
int err=0;
int c = 0;
int Attempts = 100;
for(c = Attempts ; c >= 0; c--){
HealthCheck();
RefreshRates();
ticket=OrderSend(O_Symbol,O_Type,O_Lots,O_OpenPrice,O_Slippage,O_StopLoss,O_TakeProfit,O_String,O_Magic,O_Exp,O_Color);
if (ticket > 0) {Print(" Order Symbol : "O_Symbol," Order Type : "O_Type," Lots : "O_Lots," Open Price : "O_OpenPrice," Slippage : "O_Slippage," Stop Loss : "O_StopLoss," Take Profit : "O_TakeProfit," "O_String," Order Magic : "O_Magic," Order Exp : "O_Exp," Order Color : "O_Color," Open Time : "OrderOpenTime()," EA Took ",GetTickCount() - TickStart," milliseconds" );break;}
err=GetLastError();
if(err==0 || err==2 || err==4 ||err==6 || err==8 || err==9 || err==64 || err==128 || err==132 || err==133 || err==137 || err==139 || err==141 || err==146){ //Sleep and retry errors
Print("....................... Sleep And Retry Error Code= ", err," "ErrorDescription(err));
Sleep(10);
continue;
}
if(err==135 || err==136 || err== 138){ // price change errors
Print ("..................Invalid Price " O_String + " ..............");
WindowScreenShot("S_REQUOTE_"+Month()+"_D"+Day()+"_H"+Hour()+"_M"+Minute()+"_S"+Seconds()+".gif",1440,900);
Print("....................... Price Error Code= ", err," "ErrorDescription(err));
start();//restart and make sure that new price meets our entry criteria
break;
}
else{ // other errors
Print(".......................Error Code= ", err," "ErrorDescription(err));
break;
}
}
}
void ModifyOrder(){
int ticket=0;
int err=0;
int c = 0;
int Attempts = 100;
for(c = Attempts ; c >= 0; c--){
HealthCheck();
RefreshRates();
ticket=OrderModify(M_Ticket,M_Price,M_StopLoss,M_TakeProfit,M_Exp,M_Color);
if (ticket > 0) { Print(" Ticket : ",M_Ticket," Price : ",M_Price, " Stop Loss : ",M_StopLoss," Take Profit : ",M_TakeProfit," Exp : ",M_Exp," EA Took ",GetTickCount() - TickStart," milliseconds");break;}
err=GetLastError();
if(err==0 || err==2 || err==4 ||err==6 || err==8 || err==9 || err==64 || err==128 || err==132 || err==133 || err==137 || err==139 || err==141 || err==146){ //Sleep and retry errors
Print("....................... Sleep And Retry Error Code= ", err," "ErrorDescription(err));
Sleep(10);
continue;
}
if(err==135 || err==136 || err== 138){ // price change errors
Print ("..................Invalid Price " O_String + " ..............");
WindowScreenShot("S_REQUOTE_"+Month()+"_D"+Day()+"_H"+Hour()+"_M"+Minute()+"_S"+Seconds()+".gif",1440,900);
Print("....................... Price Error Code= ", err," "ErrorDescription(err));
start();//restart and make sure that new price meets our entry criteria
break;
}
else{ // other errors
Print(".......................Error Code= ", err," "ErrorDescription(err));
break;
}
}
}
void CloseTicket(){
int ticket=0;
int err=0;
int c = 0;
int Attempts = 100;
for(c = Attempts ; c >= 0; c--){
HealthCheck();
RefreshRates();
ticket=OrderClose(C_Ticket,OrderLots(),C_Price,C_Slippage,White);
if (ticket > 0) {Print (CloseString);break;}
err=GetLastError();
if(err==0 || err==2 || err==4 ||err==6 || err==8 || err==9 || err==64 || err==128 || err==132 || err==133 || err==137 || err==139 || err==141 || err==146){ //Sleep and retry errors
Print("....................... Sleep And Retry Error Code= ", err," "ErrorDescription(err));
Sleep(10);
continue;
}
if(err==135 || err==136 || err== 138){ // price change errors
Print ("..................Invalid Price " CloseString + " ..............");
WindowScreenShot("S_REQUOTE_"+Month()+"_D"+Day()+"_H"+Hour()+"_M"+Minute()+"_S"+Seconds()+".gif",1440,900);
Print("....................... Price Error Code= ", err," "ErrorDescription(err));
start();//restart and make sure that new price meets our entry criteria
break;
}
else{ // other errors
Print(".......................Error Code= ", err," "ErrorDescription(err));
break;
}
}
}
DislikedFirst I have to thank KurkaFund, this is one of the more interesting threads I have read for a while.
One question came to my mind. If you are using other pairs as a triangular correlation tool to check the value of one pair, how do you know that the inefficiency is in that pair that you are looking at and not in one of the other pairs? If you are only trading one pair and not all of them then you definitely want the inefficiency to be in the current currency.
You could always eliminate the verification pairs by checking their relative values by triangles as well, I'm not sure if that is what you are actually doing..Ignored
Disliked.....Also, I have received a few emails from people wanting to help test this EA. Thanks for the offer, but I have adequate computer power to test it myself. .Ignored
DislikedStarted this testing account on Friday afternoon. The computer froze up with some open positions (12) on Monday...Ignored
DislikedK Fund,
I've experimented with this idea over a year ago and while doing it, I came up with essentially the same idea as Kreslik with his FPI. Coded FPI and actually ran it on MBT, but stopped now as I don't think it's worth it in my current implementation, at least not on MBT (plus, I make much more trading manually old fashion way).
Your post reignited my curiosity again and I'm working on it in my spare time with fundamental idea coded and undergoing testing.
In one of your posts you mention calculating major currency Indexes and then relating your triangular rings to it and keeping a tab on the direction of the indexes.
Those two criterias look to me as filters more than actual signals.
Also, instead of tracking the time of day and putting weights on the pairs, I simply put weights on each pair in the ring and calculate the weight of the entire ring and then calculate weighted theoretical bid and ask. Having those I compare to the actual bid and ask and if satisfies my preset deviation, I fire an order.
Hope some more people can contribute to the topic.Ignored
DislikedI wrote a Script that places arrows on the chart of the EURUSD when the Actual price is greater or less than the calculated price. The arrows are placed live in real market conditions at the correct Bid or Offer. 159 pips in a few hours is not to shabby.Ignored
DislikedHave you posted your scripts,calulators,indicators
I am searching and not finding, could you directed meIgnored
DislikedHi Kurka Fund,
I decided to put together the same indicator chart you posted in post 43.
The indicator i created is incredibly tight and the consensus price is spot on. Theres no significant deviations to suggest any trading opportunities. Your chart seems to have huge deviations. Does this have anything to do with the weights you selected according to time of day and news events etc etc....
PS i wanted to post a picture but didn't have time to upload the image...
Cheers
GoskoIgnored
DislikedSo here are the results of live testing on a new demo account for the past 24 hours. Again this is just entrys and exits based on signals and reverse signals.
325 positions with only 25 losses in 24 hours is pretty good.
Average trade time is 6 minutes and 13 seconds.
All but 2 positions were profitable by one or more pips within 2 minutes of opening.
Every position was profitable at at least one point, the losses were simply held onto for too long.
I really need to figure out which currency's to follow at different times of day. (http://forexfactory.com/showthread.php?t=88653) Does anyone here know how to have MT4 pull data off other websites? following the global stock indexes would help this system out allot. (I will share the EA with anone that can figure that out)Ignored
DislikedEvery position was profitable at at least one point, the losses were simply held onto for too long.Ignored