[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [amibroker] Re: alertif exec - simultaneous trading systems / alerts



PureBytes Links

Trading Reference Links

Robert,

 

This will take some coding on your part since only you know what you want to do with arbitrating the various rules.

 

You would replace your AlertIF statement in each of your 9 charts with code like this:

If (Buy) StaticVarSetText("exec_1","script/file to execute goes here");

 

In your 2nd chart it would look like this:

If (Buy) StaticVarSetText("exec_2","script/file to execute goes here");

 

Then you will have a TimerControl.afl that reads each of these. See below for code sample. I have extracted this code from my own, working, TimerControl module that sends out email alerts to me at designated times for multiple charts so it's not quite the same, but adaptable.

 

You could put your Chart 3 "time" code into TimerControl and eliminate Chart 3 from your screen. Maybe someone else has a better time delay function than mine.

 

Note: If you’re reading data very fast, this may not work as expected or it may miss some signals. You’ll have to try it out to see.

 

/*************** Timer Control Code ******************/

function wait (Seconds)

{

    end = Now(4) + Seconds;

    while (Now(4) <= end)

   {

       sin(sqrt(123456789)); //Just to kill some time

   }

}

 

/* Loop through up to 10 charts executing scripts for those with data available. This has a roughly 1 second delay between executing each chart that has a signal. This may be inappropriate for you. You may also need to collect all 9 charts and make decisions on which to execute */

 

    varName = "";

    for (i = 1; i <= 10; i++)

    {

        varName = "exec_" + NumToStr(i,1.0);

        //Build the name of the current chart being read.

        varMsg = StaticVarGetText(varName);

        if (varMsg == "") varName = "";

        else

        {

            AlertIf(True,"EXEC", varMsg, 6,1+2,0); //Check options

            StaticVarSetText(varName,””); //blank for next tick

            wait(1); //1 second delay before reading next chart

        }

    }

 

//Chart 3 code. Delete Chart 3 and replace with this module

 

AddColumn(Hour(),"Hour");

AddColumn(Minute(),"Minute");

function time()

{Time = Now(4);

Seconds = int(Time%100);

Minutes = int(Time/100%100);

Hours = int(Time/10000%100);

SecondNum = int(Hours*60*60+Minutes*60+Seconds);

return Time;}

Title ="\nTime: "+NumToStr(Time(),1.0,0);

 

/*************** End Timer Control ******************/

--

Terry

 

| -----Original Message-----

| From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On

| Behalf Of livetraderman

| Sent: Thursday, July 14, 2005 07:39

| To: amibroker@xxxxxxxxxxxxxxx

| Subject: [amibroker] Re: alertif exec - simultaneous trading systems /

| alerts

|

| Dear Terry,

|

| thank you very much for your help.

|

| I am not too deep into AFL coding.

|

| Could you help me out with a concrete sample for the code ?

| Below as an example.

|

| Thank you !!!!

|

| Regards

| Robert

|

|

| Examle for my current setup:

|

| Chart 1 (EURUSD)

|

| Buy = Cross(condition);

| Sell = 0;

| Applystop...(loss limit)

| Applystop...(profit Target)

| alertif(Buy,"EXEC" .....,1);

|

| Chart 2 (USDJPY)

|

| Buy = Cross(condition);

| Sell = 0;

| Applystop...(loss limit)

| Applystop...(profit Target)

| alertif(Buy,"EXEC" .....,1);

|

| Chart 3 (time)

|

| AddColumn(Hour(),"Hour");

| AddColumn(Minute(),"Minute");

| function time()

| {Time = Now(4);

| Seconds = int(Time%100);

| Minutes = int(Time/100%100);

| Hours = int(Time/10000%100);

| SecondNum = int(Hours*60*60+Minutes*60+Seconds);

| return Time;}

| Title ="\nTime: "+NumToStr(Time(),1.0,0);

|

| --- In amibroker@xxxxxxxxxxxxxxx, "Terry" <MagicTH@xxxx> wrote:

| > Instead of doing separate AlertIf functions for each of your 9

| charts,

| > write a message to a staticVar. Static var names will be "alert1"

| > through "alert9". Then create a TimerControl chart which will loop

| > through each staticVar using a for loop 1 through 9 so you can

| recreate

| > each of these names in a loop. You will then have all 9 Alerts in-

| hand

| > simultaneously in a single place and can decide how to prioritize

| and/or

| > delay multiple alerts.

| >

| > Each alert should be cleared by the TimerControl chart after it is

| read.

| > --

| > Terry

| > | -----Original Message-----

| > | From: amibroker@xxxxxxxxxxxxxxx

| [mailto:amibroker@xxxxxxxxxxxxxxx] On

| > | Behalf Of livetraderman

| > | Sent: Thursday, July 14, 2005 01:11

| > | To: amibroker@xxxxxxxxxxxxxxx

| > | Subject: [amibroker] alertif exec - simultaneous trading systems /

| > | alerts

| > |

| > | Hello,

| > |

| > | I run Amibroker 4.70.5 RT version with esignal forex datafeed.

| > |

| > | There are 9 different 5 minute charts opened simultaneously,

| > | each with its own trading system running. The trading systems

| > | generate e.g. BUY signals and I use "alterif" function to execute

| > | different exe files (macros of another application).

| > |

| > | Once in a while, when the independent trading systems

| > | generate a buy signal coincidentally at the same time (hour and

| > | minute), accordingly alertif tries to execute two or more exe

| files

| > | simultaneously. This causes an error message of my third party

| > | application.

| > |

| > | My question: How can I prevent this to happen ?

| > |

| > | I would like to implement a solution which prevents this

| successfully

| > | e.g. with an "OR" function, but still lets me run my 9 different

| > | trading systems on 9 different currency pairs. So to speak like

| > | a "filter" which controls the 9 different trading systems. I

| thought

| > | about using the "second()" function to differ the signals from

| each

| > | other, but this leads to unwanted results due to delayed order

| > | execution (my strategy is scalping very small profit targets).

| > |

| > | Thank you very much for your help in advance.

| > |

| > | Regards

| > | Robert

| > |

| > |

| > |

| > |

| > |

| > |

| > |

| > | ------------------------ Yahoo! Groups Sponsor -------------------

| -~--

| > | >

| > | Try Online Currency Trading with GFT. Free 50K Demo. Trade

| > | 24 Hours. Commission-Free.

| > | http://us.click.yahoo.com/DldnlA/9M2KAA/U1CZAA/GHeqlB/TM

| > | ------------------------------------------------------------------

| --~-

| > | >

| > |

| > | Please note that this group is for discussion between users only.

| > |

| > | To get support from AmiBroker please send an e-mail directly to

| > | SUPPORT {at} amibroker.com

| > |

| > | For other support material please check also:

| > | http://www.amibroker.com/support.html

| > |

| > |

| > | Yahoo! Groups Links

| > |

| > |

| > |

| > |

|

|

|

|

| ------------------------ Yahoo! Groups Sponsor --------------------~--

| >

| Try Online Currency Trading with GFT. Free 50K Demo. Trade

| 24 Hours. Commission-Free.

| http://us.click.yahoo.com/DldnlA/9M2KAA/U1CZAA/GHeqlB/TM

| --------------------------------------------------------------------~-

| >

|

| Please note that this group is for discussion between users only.

|

| To get support from AmiBroker please send an e-mail directly to

| SUPPORT {at} amibroker.com

|

| For other support material please check also:

| http://www.amibroker.com/support.html

|

|

| Yahoo! Groups Links

|

| <*> To visit your group on the web, go to:

|     http://groups.yahoo.com/group/amibroker/

|

| <*> To unsubscribe from this group, send an email to:

|     amibroker-unsubscribe@xxxxxxxxxxxxxxx

|

| <*> Your use of Yahoo! Groups is subject to:

|     http://docs.yahoo.com/info/terms/

|

 



Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html





YAHOO! GROUPS LINKS