Forex
Google
New signals service!

Go Back   Forex Trading > Programming > Metatrader Programming


Register in Forex TSD!
Trading Systems Leaders in this forum (automated trading systems) are winning more than 3000 pips in a month (30000$ investing one lot every time).
Click here to register and get more information

Reply
 
LinkBack Thread Tools Display Modes
  #1061 (permalink)  
Old 07-03-2008, 10:42 PM
Senior Member
 
Join Date: Nov 2006
Posts: 156
luxinterior is on a distinguished road
Try looking at a few of the EA's you already have. Study the code and try to see if you can figure out some of the logic. Try speaking the flow of the program out loud. It helps a lot!

Good Luck

Lux
__________________
Build An Expert Advisor. FREE E-course As Seen On TV
ForexArea.com
Users of Gap Trader from 'Forex-Assistant' MUST Read This
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1062 (permalink)  
Old 07-04-2008, 12:07 AM
Junior Member
 
Join Date: May 2008
Posts: 7
areon25 is on a distinguished road
hi all..

thanks luxinterrior for the reply..

Quote:
Try looking at a few of the EA's you already have. Study the code and try to see if you can figure out some of the logic. Try speaking the flow of the program out loud. It helps a lot!

Good Luck
i have 7 buffer.. buffer1 until buffer7.. each buffer will save MACD bar value.. the EA will open
BUY post when the MACD become 'u' shape..
the condition when..
Code:
if (MacdBuffer7[i+3]>MacdBuffer5[i+2]&&MacdBuffer5[i+2]>MacdBuffer3[i+1]&&MacdBuffer3[i+1]>MacdBuffer1[i]
       &&MacdBuffer1[i]<MacdBuffer2[i-1]&&MacdBuffer2[i-1]<MacdBuffer4[i-2]&&MacdBuffer4[i-2]<MacdBuffer6[i-3])
SELL post when the MACD become 'n' shape..
the condition when..
Code:
   if(MacdBuffer7[i+3]<MacdBuffer5[i+2]&&MacdBuffer5[i+2]<MacdBuffer3[i+1]&&MacdBuffer3[i+1]<MacdBuffer1[i]
       &&MacdBuffer1[i]>MacdBuffer2[i-1]&&MacdBuffer2[i-1]>MacdBuffer4[i-2]&&MacdBuffer4[i-2]>MacdBuffer6[i-3])
hope anyone can help me solve the problem.. thanks..
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1063 (permalink)  
Old 07-04-2008, 02:39 AM
TheRumpledOne's Avatar
Banned
 
Join Date: Nov 2006
Posts: 806
TheRumpledOne is an unknown quantity at this point
Is there a way to force the program to calculate?

Right now it waits for the next tick.

I have 6 charts open and the same indicator is on all six charts.

If one chart receives a tick, it updates but the other charts don't so they are "stale".

Thanks.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1064 (permalink)  
Old 07-04-2008, 08:06 AM
IN10TION's Avatar
Senior Member
 
Join Date: Mar 2007
Posts: 472
Blog Entries: 1
IN10TION is on a distinguished road
:: if it's suitable then try to form it in a EA, there you can loop & use sleep function, I've tried several simple setups to have only processes/calculations not related to ticks, but then you have the refresh screen issue ... so ... I've changed everything back to normal ... the importance to do so was not that great ... perhaps in MQL5 coming up

:: indicators can't deal with sleep() function

:: you can write a dll, fetch all the windows in your terminal... then do/send a "refresh screen/window" to every child window. But then you have to send dll file together with your indicator to others ... again ... making it complicated ...
Quote:
Originally Posted by TheRumpledOne View Post
Is there a way to force the program to calculate?

Right now it waits for the next tick.

I have 6 charts open and the same indicator is on all six charts.

If one chart receives a tick, it updates but the other charts don't so they are "stale".

Thanks.
__________________
..SUPER REVISED.. IN10TION newsReader v09.8 Lite - the best news reader on your chart
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1065 (permalink)  
Old 07-04-2008, 08:55 AM
Junior Member
 
Join Date: Dec 2007
Posts: 13
amatrader is on a distinguished road
Hi there,

I hope you don't mind me butting in here, I'm looking at a similar situation and I have a thaught on the issue... what about if you code a loop at the end of your program that says "if no order is open run through again". and let it loop maybe 3 or 4 times.

If it does that then any missed orders (which happens quite often) should surely get picked up. or is there something wrong with my thinking.

I think it would look something like this...

Quote:
for (int k = OrdersTotal() ==0; k >=2; k++)
{
if ( ! OrderSelect ( k, SELECT_BY_POS, MODE_TRADES ))continue;
if (k > 2) break;
}


return(0);
}
I'm still new to this so if it doesn't make sense please explain to me why.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1066 (permalink)  
Old 07-04-2008, 05:00 PM
Member
 
Join Date: Oct 2006
Posts: 69
Big Be is on a distinguished road
To Lux, ajk, Raygun, Devil2000, IN10TION

Thanks for the tips.
I will try them and I hope come up with the answer.
I will post later.

Big Be
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1067 (permalink)  
Old 07-04-2008, 09:43 PM
TheRumpledOne's Avatar
Banned
 
Join Date: Nov 2006
Posts: 806
TheRumpledOne is an unknown quantity at this point
Quote:
Originally Posted by amatrader View Post
Hi there,

I hope you don't mind me butting in here, I'm looking at a similar situation and I have a thaught on the issue... what about if you code a loop at the end of your program that says "if no order is open run through again". and let it loop maybe 3 or 4 times.

If it does that then any missed orders (which happens quite often) should surely get picked up. or is there something wrong with my thinking.

I think it would look something like this...



I'm still new to this so if it doesn't make sense please explain to me why.
Hey, that's a good idea!

I could check the time and if X seconds or minutes have elapsed then exit the loop.

THANKS!!

P.S. This was not for an EA. I don't code EAs.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1068 (permalink)  
Old 07-04-2008, 10:07 PM
IN10TION's Avatar
Senior Member
 
Join Date: Mar 2007
Posts: 472
Blog Entries: 1
IN10TION is on a distinguished road
:: it will not work with indicators like that, even if you loop 1.000.000 times, it will stall everything else, nothing other then that loop will be processed, when the loop is finished then your terminal will continue her normal processes before a new tick.

:: in that 1.000.000 loop it's useless to check/control something else, that's why sleep() function doesn't work.
Quote:
Originally Posted by TheRumpledOne View Post
Hey, that's a good idea!

I could check the time and if X seconds or minutes have elapsed then exit the loop.

THANKS!!

P.S. This was not for an EA. I don't code EAs.
__________________
..SUPER REVISED.. IN10TION newsReader v09.8 Lite - the best news reader on your chart
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1069 (permalink)  
Old 07-06-2008, 04:06 PM
Junior Member
 
Join Date: Jan 2008
Location: Brooklyn
Posts: 22
bdht is on a distinguished road
Simple arrow based indicator and EA

Hi, Everyone.

Recently I was trying to make a simple EA that would work on an arrow-based indicator. I am trying to make the EA to maintain one order at any given time. If the arrow points down, the previous buy order is closed and sell order is opened. If the arrow points up, the previous sell order is closed and buy order is opened. I am using the tester (visualization mode) to verify my code. It seems that no matter how I try, the EA does not close and open the positions when arrow indicator points up or down. The back test confirms that the EA is not working properly. Instead of opening and closing the orders at the arrow points shown by the indicator, the EA closes/opens order at some different time. I cannot understand why my code doesn't work.

In the beginning of start statement, I have the following code:

if (Time[0] == savedTime) {
return (0);
} else {
savedTime = Time [0];
}

This (I hope) will ensure that the code in the start statement is executed only when new bar has formed. Later in the body of the start subroutine, I query the indicator with iCustom function. The request looks as below:

iCustom (... 1)

The last argument of one specifies the previous formed bar, which is why it is not 0. Yet later I close the opened order with OrderClose and open new one with OrderSend. I suppose that both functions must be able to execute instantaneously.

The bottom line is: I am trying to create an EA based on arrow indicator. The indicator points either up or down. The way I see it (and I am probably incorrect), the only thing that I need to do is to close previous order and open new one when the next bar has formed. I would greatly appreciate any input into this problem.

Thanks to all.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #1070 (permalink)  
Old 07-06-2008, 04:48 PM
onetarmizi's Avatar
Senior Member
 
Join Date: Apr 2007
Posts: 142
onetarmizi is on a distinguished road
Anybody can tell me how to code for putting expiry date in the indicator?

Thanks.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
How to code this? iscuba11 Metatrader 4 mql 4 - Development course 1 08-03-2007 04:22 PM


All times are GMT. The time now is 12:19 PM.



Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.