Tuesday, April 29, 2008

The Flux Programming Language

http://flux.cs.umass.edu/

Flux is a domain-specific programming language for building high-performance server applications. It's a clean and simple language that lets you build fast, concurrent, and correct servers out of sequential, off-the-shelf C code. Flux abstracts away issues like threads, events, and synchronization, yielding code that runs fast and is free from deadlock or race conditions. Flux also makes profiling and performance prediction easy.

We've built three servers with Flux: a web server, a game server, and a BitTorrent server. All of these are as fast or faster than their hand-tuned counterparts. The web site you're looking at is being served by Flux, and so is the BitTorrent seed for downloading it.

江恩买卖二十一条

4. 永不让所持仓盘转盈为亏。
这个说起来容易,做起来确实不易,面对诱人的利润,很多人还想获得更多,从来不知足,到最后市场见顶,股价一步一步下跌,还抱着这只是调整的心态,市场还会创新高,可惜事与人违,到最后,利润没有了,还造成亏损。

6. 有怀疑,即平仓离场。
就是对自己的操作和原有看法产生了怀疑,这种心态严重影响投资者操作决策,这样能造成投资错误。

7. 只在活跃的市场买卖。
只有活跃的市场才能有获得丰厚利润的机会,同时也能造成损失资本的机会。但一个活跃的市场资金进出十分容易。

10. 在市场连战皆胜后,可将部分利润提取,以备急时之需。
在连续获得利润的时候,继续获利的几率就大幅下降。此时应该注意风险。将部分利润提取,就是这个意思。

16. 做多错多,入市要等候机会,不宜炒卖过密。
这个还是说不要因为买卖而买卖的问题。在机会没有出现之前,最好还是观望。不过等待有时候是很烦人的事,希望投资者能克服。

Friday, April 25, 2008

C++ STL Hash Containers and Performance

C++ STL Hash Containers and Performance

If you understand the details of your application and data, hash containers are powerful tools to add to your performance toolbox.

By Thomas Johnson, Dr. Dobb's Journal
Apr 05, 2007
URL:http://www.ddj.com/cpp/198800559

Thomas works as a Project Engineer in Advertising.com's Research and Development department, where he leads software projects that implement newly developed algorithms. Thomas can be contacted at thomas.j.johnson@gmail.com.


Whether you're writing business applications, website backend code, games, or nearly any other modern application, it's likely that you need to quickly access large amounts of data and perform calculations on this data. For instance, at Advertising.com we have to rapidly perform complex mathematical calculations on huge amounts of in-memory data so that we can choose the most relevant ads to show website visitors. Of course, there are many different profiling and optimization techniques you can use once your application is completed. But even if you believe that "premature optimization is the root of all evil," you should begin thinking about application performance as early as possible. Why? Because the proper choice of data structures is a make-or-break architectural decision for performance-critical applications.

Fortunately for C++ programmers, the C++ Standard Template Library provides a wealth of commonly used data structures that can be easily incorporated into most programs. Many of the simpler data structures are familiar: The performance trade-offs of vectors, linked lists, and queues are taught in introductory computer-science courses. It's also straightforward to understand and use sorted associative containers like maps and sets without knowing what's going on under the hood, particularly if it's been a while since you've looked at the details of Red/Black Tree algorithms that typically underlie them.

But understanding implementation details and design trade-offs is critical for using some of the most efficient and powerful data structures available in STL distributions—hash-based structures that include hash_map, hash_set, hash_multimap, and hash_multiset. Although these structures are not yet part of the C++ Standard, they are included in many STL packages, including the SGI version that ships with most Linux distributions. They will also be included in TR1 under the slightly different names of unordered_map, unordered_multimap, unordered_set, and unordered_multiset. The examples in this article use the SGI STL implementation. But even if you use a different STL, the implementations are likely to be similar.

Each of these data structures provides functionality similar to their nonhash-based counterparts:

  • hash_maps store key/value pairs that have unique keys.
  • hash_sets store unique values.
  • hash_multimaps store key/value pairs with nonunique keys.
  • hash_multisets store nonunique values.

For many applications, the speedup that can be gained by using, for instance, hash_maps instead of regular maps is significant. In theory, hash-based containers can provide constant-time insertion, deletion, and access to any values in the containers. In contrast, the Red/Black Trees that power STL's maps, sets, multimaps, and multisets require O(log n) time for the equivalent operations.

Factors That Impact Performance

But hash-based containers are not a silver bullet, and wall-clock time varies dramatically based on the hashing function used, the number of objects stored in the container, the time it takes to check values for equality, and other factors. Knowing how these factors interact is crucial to harnessing the performance improvements offered by hash containers.

To understand how each of these factors impacts performance, you have to understand how hash-based containers are implemented. Consider hash sets.

Hash sets can be thought of as arrays of linked lists. Each array element, denoted in Figure 1 as B0...B4, is a "bucket." When a new item is inserted into the hash set, the item's hash value is computed. Next, the bucket number is computed by taking the hash value modulo the number of buckets. In Figure 1, item A, whose hash value is 7, is stored in bucket 2 (Hash value of 7 modulus 5 buckets=bucket 2). When you call find(A) to check if item A is in the hash set, the program computes A's hash value of 7, and looks in bucket 2 to see if A is there. Since there is only one element in bucket 2, this is relatively fast. But even if there is only one element in a bucket, find() still needs to check if this is the particular element that you are searching for, which involves a call to operator==. If equality comparison is slow, the performance of your hash container degrades.

Figure 1: Array elements.

Now suppose you insert another item, item Z, into your hash set. If item Z has a hash value of 12, and you do not increase the number of buckets in the hash set, then item Z also ends up in bucket 2 (Figure 2). When more than one item is in a hash bucket, find() may become slower. If you call find(Z), the program again looks in bucket 2, but it first has to examine item A before moving on to the next element in the linked list and telling you that Z is in fact in your hash set. Thankfully, as the number of items in your hash set grows, the number of buckets automatically increases. This reduces the chance of two items with different hash values ending up in the same bucket.

Figure 2: Inserting another item into a hash set.

But what if you had many items that had the same hash value, as in Listing One? When two different items hash to the same value, there is a "hash collision." These items always end up in the same bucket, no matter how many buckets you have. This significantly degrades the performance of the collection. If the hash collisions happen often enough, finding items in the container effectively becomes O(n) instead of O(1) because you have to traverse the linked lists that form in the hash buckets.

struct terribleHasher {
size_t operator()(const myClass& myObj) const {
return 1;
}
};
Listing One

In addition to being relatively unique, hash values should also be very fast to compute. The SGI STL provides some basic hash functions. Most primitives hash to themselves: integers, characters, and longs all simply cast to size_t, which is the return type for STL-compatible hash functions. The SGI STL also includes functions to hash char*s (strings, for instance) that iterate over each character and apply a simple recursive formula.

Handling other simple types is nearly as easy. Just as with primitives, it makes sense to hash anything that can be quickly and uniquely cast to a size_t to its own value. This cast is trivial and therefore extremely fast. Since it is obviously unique, it should be preferred over other hash functions whenever possible. But rather than reimplementing this hashing concept for each type that can be cast to size_t, use the template in Listing Two.

template<>
struct SizeTCastHasher {
size_t operator()( const T_TypeToHash& i_TypeToHash ) const {
return size_t( i_TypeToHash );
}
};
Listing Two

One use case for the SizeTCastHasher is hashing a pointer. For instance, suppose you are writing a program for an Internet advertising business. You have a class adFactory that creates objects of type myAdvertisement. The factory class also places the ads on websites by calling myWebsite.placeAd(); see Listing Three. The website keeps track of the ads that have been placed on it by putting each ad into a hash_set. Since each myAdvertisement is created at a new location in memory, you can use the address of the myAdvertisement object (the value of the pointer) as the key into the map, and cast the pointer to size_t when you need to calculate the hash value of the key. Of course, this restricts memory management somewhat since two identical objects that are at different memory locations won't hash to the same value. Consequently, you must ensure that you have only one copy of a given myAdvertisement in memory. However, in exchange for satisfying this restriction, calling lookup functions like website.doWeShowAd() is now very fast because the hash function is both computationally trivial and hashes each object to a unique value.

class adFactory {
...
myAdvertisement* createAd(TAdType adType) {
myAdvertisement* newAd=new myAdvertisement(adType);
myWebsite* website=websiteFactory.getBestWebsite(newAd);
website.placeAd(newAd);
return newAd;


}
...
};
class website {
public:
...
void placeAd(const myAdvertisement* const ad) {
myAds.insert(ad);
}
bool doWeShowAd(myAdvertisement* ad) const {
return myAds.find(ad)!=myAds.end();
}
...
private:
__gnu_cxx::hash_set<> > myAds;
};

Listing Three

When designing hash functions for more complex types, it is important to know as much as possible about your data. The range and distribution of the data is particularly important. For example, suppose that in the advertising application, you want to know how many people saw a given ad on a given website. One way to implement this would be a hash map that hashes an ad and a website to a size_t. Further suppose that each ad and website has a unique identifier associated with it. For instance, this could be a row number that our application assigned to the ad or website when it was loaded from a database. In this scenario, you would like the hash map to hash a pair of unsigned integers (the row number of the ad and website) to another unsigned integer. If you make the assumption that the IDs of the website and ad are both smaller than 216, then you can pack both identifiers into a single size_t without any hash collisions. ShiftedPairHasher (in Listing Four) does exactly that.

struct ShiftedPairHasher {
size_t operator()(std::pair key) {
return (key.first << ( sizeof(unsigned int) * 8/2)) ^ key.second; } }
Listing Four

How the Code Works

Here's how this code works. Conceptually, you are placing key.first into the upper 16 bits of the size_t and key.second into the lower 16 bits. To do this, you use the bitwise <<> to shift key.first the appropriate number of bits to the left. The number of bits to shift is half the number of bits in our key type, which you calculate with the formula sizeof(unsigned int)*8/2. Next, you use ^, the bitwise XOR operator, to put key.second into the lower half of the hash value. I have chosen to use XOR instead of OR because if key.second grows beyond 16 bits, XOR yields hash values that are more unique than OR, since OR sets the 17th bit to 1 for all values of key.second larger than 65536. ShiftedPairHasher is quite fast: It does just one left shift operation and one XOR operation. The compiler optimizes the sizeof(unsigned int)*8/2 to a constant at compile time. This same concept can be extended if you want to hash more than two values simply by shifting each value the appropriate number of bits and then XORing it with the other shifted values.

With proper hashers, hash containers can give you O(1) access time. Nonetheless, even if you are able to create excellent hash functions, there are certain cases when nonhashed containers actually give better runtime performance. Consider the case where you create a huge number of containers that hold only a few values, and you will be doing only a few lookups on each container (Listing Five). If you typedef TMap to a regular map in doMapBenchmark(), this program takes about 5.9 seconds to execute (all timings were generated on a Pentium 4 2.8 GHz). But if you change TMap to be a hash_map, the same program takes nearly 16.5 seconds. The reason for this 280 percent increase in runtime lies in how memory is allocated when an application instantiates hash maps and maps.

#include 
#include
#include
int doMapBenchmark() {
typedef __gnu_cxx::hash_map TMap;
//typedef std::map TMap;
std::vector myMaps;
int mySum=0;
for(int mapCnt=0; mapCnt<1000000; i="0;" mysum="myMap.find(0)-">second+myMap.find(1)->second;
myMaps.push_back(myMap);
}
return mySum;
}
Listing Five

Because maps are implemented as binary trees, the map constructor only needs to create a few pointers when the application instantiates a new map. But hash maps are implemented as arrays of linked lists. When you create a new hash map, by default, the STL creates 193 buckets and inserts a NULL pointer into each one. If you are creating a large number of hash maps, this can take a long time. The problem can be somewhat mitigated by asking for a smaller number of buckets. In the benchmark program (Listing Five), you can change "TMap myMap;" to "TMap myMap(0);". Although you won't get zero buckets, you'll get the smallest number of buckets that your STL's implementation offers; in the case of the SGI STL it's 53 buckets. Making this change reduces the benchmark's wall-clock time to about 8.8 seconds—nearly a 50 percent decrease in runtime.

It is also important to consider how long it takes to compute the hash function relative to the function's uniqueness. For instance, if you have two hash functions—one of which produces many hash collisions but is much faster to calculate—and another—which is slower but produces very few collisions—it may make sense to choose the faster one even though this leads to scaling that is closer to O(n) than O(1). For instance, this kind of strategy may make sense when dealing with long strings. Because the default string hasher iterates over each character in the string when calculating the hash, the lookups become O(l) where l is the length of the string. If the characters of the string are well distributed, wall-clock time may be improved by hashing fewer characters, as in Listing Six (available electronically; see "Resource Center," page 5). In this example we are inserting 10,000 randomly generated strings of length 10,000 into a hash map and then looking up each one 10,000 times. If we use the default string hasher, this takes 17.1 seconds. However, if we calculate the hash based only on the first three characters of the string, the runtime is reduced to 8.4 seconds. Clearly the calculation time of the hash function dominates the additional linked list traversals required to resolve hash collisions.

STL Options

If the STL doesn't have a hash function that suits your needs, take a look at the Boost library's hash functions before crafting your own. The boost::hash library (www.boost .org/doc/html/hash.html) provides hashing functions for many primitives, but even more useful is its hash_combine function. This function takes two hash values and calculates a new, unique hash from them. The Boost hashing library includes templates that apply hash_combine recursively to calculate hash values for multiobject data structures such as arrays, pairs, and the STL containers. Starting from a user-specified seed value, the hash value is calculated by iterating over each individual object and combining the object's hash value with the previously calculated hash value (or the seed value if the particular object is the first one in the container). This is a useful concept, but again, the performance of hash containers and their associated hash functions are very heavily dependent on the details of the data. Whenever you have a choice between multiple hash functions, you should always benchmark each option before committing to a final decision.

Conclusion

Hash-based containers can provide a significant speed boost to your application under certain conditions. Still, they aren't appropriate in every situation, and the performance gain is greatly influenced by your choice of hash function, which in turn depends on the properties of the data you are hashing.

If you understand the details of your application and data, hash containers are a powerful tool to add to your performance toolbox.

Tuesday, April 22, 2008

几篇开悟的好文章

我觉得一通百通。原则都是一样的。做单是一种感情,是大众心理:贪和怕。任何情况下都是一回事。

也 许最重要的原则是守住赢单,砍断输单。两者同样重要。赢单要是不守住,输单就赔不起。 要根据自己的判断做单。我有许多朋友都是有才气的高手。我常常提醒自己,要是盲目跟着他们做一定赔钱。他们有的人赢单守得好,但输单可能守得太长了点;有 的人砍单很快,但赢单也走得快。你坚持自己的风格,可能好的、坏的都沾。若愣去学别人的风格,结果可能两边的缺点都让你赶上。

首 先,一定要认识到风险管理的重要性。第二个忠告是,少做,少做,再少做。不管你认为你应该进多少单,先减掉一半再说。除此之外,新手往往把市场人化。最常 见的错误是把市场看作个人的对头。实际上市场是完全超脱的,它才不管你是赢钱还是输钱。一个交易员如果主观地说:"但愿"或"希望"如何如何,那他就没法 集中精力分析市场,这样有害无益。

我的目标是每天赚2000英镑,然后不要把其中20%以上的钱赔回去。所以,当我开始获利时,每天赚800—2000英镑,平均约1200英镑一天。我不仅开始赢利,而且接连十五天都是,三个星期无任何损失!

害怕时绝对赢不了, 假如我们害怕, 那到底是害怕什么呢?

“ 我们最大的恐惧不是自己的能力不足,而是低估了自己。往往是我们潜在的威力,而不是黑暗吓倒了自己。我们问自己:“我怎么可能那么才华横溢,无限风光?” 实际上,为什么我们不行?你是上帝的孩子。你的自我渺视对这个世界并不是有益的。把自己贬低, 使得周围其他人不会感到不安, 这并不能算是明智的选择。我们应该将上帝赋予的光辉放射出来,不是我们中一些人,而是每一个人。当我们让自己光芒四射时,无意中也鼓励别人这样做。当我们 从恐惧中解脱时,我们的行为也自动地解脱了别人。”——尼尔森-曼德拉

不要把差劲的交易变化成灾难的交易,要把丰硕的交易变成最棒的交易;

迅速认赔,让获利持续发展;

有时候,最棒的交易不是把钱放在口袋里,而是在正确的时机结束部位;

学习喜爱小额损失;

面对损失的部位,提醒自己:
亏损如呼吸一样自然--为了获得成功,亏损必然发生;完美无缺不存在;
为了避免更加重大的损失,最好现在就接受损失。获利不仅来自于你赚多少钱,也来自于你少赔多少钱;
如果你遵从系统的指示,就是具备自律精神的交易者,将来可以得到数千倍的回报;
获胜的关键在于你的交易系统方法,而不是某一次的输赢。如果你能够及时认赔,代表你的方法正确。 

由于今天追逐行情,结果明天没有资金可供交易,这是你唯一可能错失的机会;

当你通过交易方法--而不是交易结果--来界定成败,就比较能控制自己的交易表现与交易生涯。你越觉得自己处于控制地位,操作绩效就越理想;

技术分析与价格图形都是心理学的反映;

如果你分析一份价格走势图,不妨想像市场参与者在何种情绪状态下造成这些价格形态;

历史固然不会重演,但人性始终相同。价格走势图就是如此--反映人性;

最早认赔的损失,即是最佳的损失;(按:此项建议正确之极,500029一役学到甚多)

如果预期中的事件没有发生,就出场,至于出场是获利还是亏损,不重要;(形态的止损,强势股刚开始的收阴)

在潜意识里,很多人不希望获胜;

务必了解场外观望的效益,如果没有适当的行情,如果没有胜算高的机会,就不要勉强进场。整个交易游戏的关键就是持续掌握优势。赌注必须押在胜算高的机会上。

如果交易员能够减少50%的交易次数,通常都可以赚更多;

如果交易的动机在于金钱,方向显然错了。一位真正成功的交易员必须融入交易之中,金钱只是附带的议题;

结束亏损部位的理由有两种:第一:如果预期之中应该发生的情节或情节演变,显然不可能发生了;第二:价位到达预定的停损标准;

最初的损失往往是最小的损失;

必须愿意停留在场外,不进行交易是一种自律精神--非常重要的规范;

迅速认赔至少有六个理由:
最后的结果可能是更大的损失;
忙着“救火”让你错失其他的交易机会;
基于弥补的心理,可能结束一些不应结束的获利部位;
为了照料一个无可救药的部位,可能导致其他部位的损失;
套牢资金而不能运用于报酬率更高的机会;
平掉亏损部位利于缓和压力,让情绪平静下来,提高控制能力。

宁可一次把错误处理完毕,不会重复处理相同的错误,抛却痛苦,认赔出场;

交易员必须果断,反应灵敏,而且还必须保持开放的心胸,随时愿意重新评估仓位。就如同领袖需要勇气一样,交易员也需要勇气持有庞大的仓位;

一套理想的交易计划应该释放心理压力,没有必要过度执著于不确定性。结果,交易变得更自然,让你觉得放松,甚至可以享受交易;

潜意识里,一些交易者对成功感到内疚:“这么多钱,这么容易”,务必留意潜意识里“赚钱太容易”的念头;(可不容易哦)

不理会明显的信号而按兵不动,这可能是面对亏损的最容易处理方法,期待本身绝对不能感动市场,亏损的部位也不会自动好转。(犯下错误,不能再延误了)

永远不希望对于任何事情觉得遗憾

Monday, April 21, 2008

外汇交易术语汇编

外汇交易术语汇编

A

Accrual 累积 - 在每一次交易期间内,远期外汇交易所分配的升水或折扣直接关系至利益套汇交易。

Adjustment 调整 - 官方行动,用于调整内部经济政策来修正国际收支或货币利率。

Appreciation 增值 - 当物价应市场需求抬升时,一种货币即被称作增值, 资产价值因而增加。

Arbitrage 套汇 - 利用不同市场的对冲价格,通过买入或卖出信用工具,同时在相应市场中买入相同金额但方向相反的头寸,以便从细微价格差额中获利。

Ask (Offer) Price 卖出( 买入)价 - 在一外汇交易合同或交叉货币交易合同中一指定货币的卖出价格。以此价格, 交易者可以买进基础货币。在报价中,它通常为报价的右部价格。例: USD/CHF 1.4527/32,卖出价为1.4532,意为您可以1.4532 瑞士法郎买入1 美元。

At Best 最佳价格 - 一指示告诉交易者最好的买进/ 卖出价格。

现价或更好 - 一交易以一特定或更理想汇率执行。

B

Balance of Trade 国际收支 - 指一国承认的,在一定时期内对外交易的记录,包括商品、服务和资本流动。

Bar Chart 棒形图表 - 一种由4 个突点组成的图表: 最高和最低价格组成垂直棒状,被一小水平线标志于棒形的左端为开市价格, 右端的小水平线则为关市价格。

Base Currency 基础通 - 其它货币均比照其进行报价的货 币。 它表示基础货币相对第二种货币的价值。例, USD/CHF 报 价为1.6215,即是1美元价值1.6215 瑞士法郎。在外汇交易市场中,美元通常被认为是用作报价的 “基础”通货,意即:报价表达式为1美元的1个单位等于不同单位的其他货币。 主要的例外货币为英镑, 欧元及澳元。

Bear Market 熊市 - 以长时期下跌的价格为特徵的市场。

Bid Price 买入价 - 该价格是市场在一外汇交易合同或交叉货币交易合同中准备买入一货币的价格。以此价格,交易者可卖出基础货币。它为报价中的左部,例: USD/CHF 1.4527/32, 买入价为1.4527; 意为您能卖出1 美元买进1.4527 瑞士法郎。

Bid/Ask Spread 差价 - 买入与卖出价格的差额。

Big Figure Quote 大数 - 交易员术语,指汇率的头几位数字。这些数字在正常的市场波动中很少发生变化,因此通常在交易员的报价中被省略,特别是在市场活动频繁的时候。比如,美元/ 日元汇率是 107.30/107.35,但是在被口头报价时没有前三位数字,只报"30/35"。

Book 帐本 - 在专业交易环境中,帐本是交易商或者交易柜台全部头寸的总览。

经纪人 - 充当中介的个人或者公司,出於收取手续费或佣金目的,为买方和卖方牵线搭桥。与此相比,“交易员”经营资本并且购入头寸的一边,希望在接下来的交易中通过向另一方抛售头寸赚取差价(利润)。

1944年布雷顿森林协定 - 此协定确立了主要货币的固定外汇汇率,规定中央银行对货币市场进行干预,并将黄金的价格固定成 35 美元每盎司。此协定沿用至 1971年。

Bull Market 牛市 - 以长时期上涨价格为特徵的市场。

Bundesbank 联邦银行 - 德国中央银行。

C

Cable 电缆 - 交易商针对英国英磅的行话,指英磅对美元的汇率。从 18 世纪中期起,汇率信息开始通过跨大西洋电缆传递,此术语因此流传开来。 .

Candlestick Chart 烛台图表 - 表示当日成交价格幅度以及开盘及收盘价格的图表。如果收盘价格低於开盘价格,此矩形会被变暗或填满。如果开盘价高於收盘价,此矩形将不被填充。 .

Cash Market 现金市场 - 是以期货或期权为实际操作的金融工具的市场。

Central Bank 中央银行 - 管理一国货币政策并印制一国货币的政府或准政府机构,比如美国中央银行是联邦储备署, 德国中央银行是联邦银行。

Chartist 图表专家 - 使用图表和图形,解释历史数据,以便能找到趋势,预测未来走势,并协助技术分析的人。 也可称为技术交易员。

Cleared Funds 清算资金 - 能立即使用的现金,被用于支付一交易。

Closed Position 关单价位 - 外汇的交易已不再存在。一关单过程为卖出或买进一货币来抵消同等数量的现有交易。此为持平帐目。

Clearing 清算 - 完成 一交易的过程。

Contagion 金融风暴 - 经济危机从一个市场蔓延至 另一个市场的趋势。1997 年泰国的金融震荡导致其本国货币-泰铢- 极 其 不稳定。此局面引发金融风暴席卷其它东亚新兴货币,并最终影响到了拉丁美洲。这就是现在所说的亚洲金融风暴。

Collateral 抵押 - 被用来作为贷款担保或执行保证的有价值的东西。

Commission 佣金 - 由经纪人收取的交易费用。

Confirmation 确认书 - 由交易双方交换、确认交易的各项条款的的交易文件。

Contract 合约或单位 - 外汇交易的标准单位。

Counter Currency 相对货币 - 成对货币中的第二个货币。

Counterparty 交易对方 - 外汇交易中的其一参与者。

Country Risk 国家风险 - 与政府干预相关的风险(不包括中央银行干预)。典型事例包括法律和政治事件,如战争,或者国内骚乱。

Cross Currency Pairs or Cross Rate 交叉配对货币/ 交叉货率 - 在外汇交易中一外汇与另一外汇之交易。例: EUR/GBP。

Currency symbols 外汇符号
AUD - Australian Dollar 澳元
CAD - Canadian Dollar 加拿大元
EUR - Euro 欧元
JPY - Japanese Yen 日元
GBP - British Pound 英镑
CHF - Swiss Franc 瑞士法郎

Currency 货币 - 由一国政府或中央银行发行的该国交易单位,作为法定货币及交易之基本使用。

Currency Pair 对货币 - 由两种货币组成的外汇交易汇率。 例: EUR/USD。

Currency Risk 货币风险 - 由於汇率的反向变化而导致蒙受损失的风险。

D

Day Trader 日间交易员 - 投机者在商品交易中的同一交易日内先于最后交易时限清算价位。

Dealer 交易员 - 在交易中充当委托人或者交易对方角色的人。投放买入或卖出定单, 希望能从中赚取差价( 利 润)。与之不同的是,经纪人是一个人或公司作为中间人为买卖双方牵线搭桥而收取佣金。

Deficit 赤字 - 贸易(或者收支)的负结余,支出大於收入/收益。

Delivery 交割 - 交易双方过户交易货币的所有权的实际交付行为。

Depreciation 贬值 - 由於市场供需作用,货币价值下跌。

Derivative 衍生工具 - 由另一种证券( 股票, 债券, 货币或者商品) 构成或衍生而来的交易。 期权是一最典型的衍生具。

Devaluation 贬值 - 通常因官方公告引起的一种货币币值对另一种货币币值的刻意下调。

E

Economic Indicator 经济指标 - 由政府或者非政府机构发布的,显示当前经济增长率以及稳定性的统计数字。 一般的指标包括: 国内生产总值(GDP)、就业率、贸易逆差、工业产值、以及商业目录等等。

End Of Day Order (EOD) 结束日定单 - 以一个指定的价格买入或卖出定单。这定单将持续有效直至当日交易结束,一般而言是下午五点。

European Monetary Union (EMU) 欧洲货币联盟 - 欧洲货币联盟的主要目标是要建立名为欧元的单一欧洲货币。欧元於2002年正式取代欧洲联盟成员国的国家货币。 于1999 年1 月1 日, 欧 元 的 初 步使 用 过 渡 阶 段 开 始.目前,欧元仅以银行业务货币的形式存在,用於帐面金融交易和外汇交易。 这 个过 渡 阶 段 为 期3 年, 之 后 欧 元 将 以 纸 币 与 硬 币 形 式 全 面 流 通.欧洲货币联盟的成员国目前包括:德国、法国、比利时、卢森堡、奥地利、芬兰、爱尔兰、荷兰、意大利、西班牙,以及葡萄牙。

EURO 欧元 - 欧洲货币联盟(EMU)的货币,其取代了欧洲货币单位(ECU 埃居)的地位。

European Central Bank (ECB) 欧洲中央银行 - 欧洲货币联盟的中央银行。

F

Federal Deposit Insurance Corporation (FDIC) 联邦存款保险公司 - 美国负责管理银行存款保险的管理机构。

Federal Reserve (Fed) 联邦储备署 - 美国中央银行。

First In First Out (FIFO) - 就根据FIFO 会计法则,所有货币对交易头寸必须清算。

Flat/square 持平/ 或者轧平 - 如既没有多头也没有空头,即相当於持平或者轧平。如果交易商没有任何头寸,或者其所持全部头寸都互相抵销了,那么他的帐目持平。

Foreign Exchange 外汇 - (Forex, FX) 在 外汇交易场中同时买入一种货币并卖出另一种货币。

Forward 远期交易 - 将在未来约定日期开始的交易。外汇市场中的远期交易通常被表达为高於(升水)或低於(贴水)即期汇率的差价。如要获得实际远期外汇价格,只需将差价与即期汇率相加即可。

Forward Points 远期点数 - 为计算远期价格,加入当前汇率或从当前汇率中减去的点数。

Fundamental Analysis 基本面分析 - 以判断金融市场未来走势为目标,对经济和政治数据的透彻分析。

Futures Contract 期货 - 一 种在将来某个日期以特定价格交易金融工具、货币或者商品的方式。 与 远 期 交 易 最 主 要 的 不 同 处 是 期 货 在 柜 台 市 场 上 交 易。 一 柜 台 式 交 易 为 任 一 不 在 交 易 所 交 易 的 合 同。

FX - 外汇交易。

G

G7 - 7 个领先工业国 家: 美国, 德国, 日本, 法国, 英国, 加拿大, 意大利。

Going Long 买涨 - 对股票, 商品和货币作为投资或投机的购买。

Going Short 卖空 - 卖出不属于卖方的货币或金融工具。

Gross Domestic Product 国内生产总值 - 一国的总生产量, 收入及支出。

Gross National Product 国民生产总值 - 国内生产总值加上国际投资, 交易收入。

Good 'Til Cancelled Order (GTC) - 撤销前有效定单 - 撤销前有效。委托交易员决定,以固定价格买入或卖出的定单。在被执行或撤销前,GTC 一直有效。

H

Hedge 对冲 - 用於减少投资组合价 值 易变性的投资头寸或者头寸组合。可在相关证券中购入一 份 抵销头寸。

"Hit the bid" 达到买价 - 在 一 买价价位上交易被执行。

I

Inflation 通货膨胀 - 一种经济状态,其中消费品物价上涨,进而导致货币购买力下降。

Initial Margin 原始保证金 - 为进入头寸所需的期初抵押存款,用於担保将来业绩。

Interbank Rates 银行同业买卖汇率 - 大型国际银行向其它大型国际银行报价时所按照的外汇汇率。

Intervention 干 预 - 由中央银行所采取的行动,以此调整该货币的价值。协定干预是指由不同的中央银行一起干预来控制货币汇率。

K

Kiwi - 纽西兰货币的另一名称。

L
Leading Indicators 领先指标 - 被认为可预测未来经济活动的经济变量。

Leverage 杠杆 - 也称为保证金,为实际交易的金额与要求保证金的比例。

LIBOR 伦敦银行间拆放款利率 - 表示伦敦银行间拆放款利率。最大型国际银行间互相借贷的利率。

Limit order 限价定单 - 以指定价格或低於指定价格买入,或者以指定价格或高於指定价格卖出的定单。 例 如, USD/YEN 为 117.00/05。

Liquidation 清算 - 通过执行一笔抵销交易,以结清一份未结头寸。

Liquidity 流动性与非流动性市场 - 市场能够轻松买入或卖出而不会影响价格稳定的能力。在买卖差价较小的情况下,此市场被描述为具有流动性。另一种测量流动性的方法是卖方和买方的存在数量, 越多的参与者能产生越小的价差。非流动性市场的参与者较少,交易价差较大。.

Long position 多头 - 购入的工具数量多於卖出数量的头寸。依此,如果市场价格上涨,那么头寸增值。

Lot 单 - 一 用来衡量外汇交易数量的单位。交易的价值总是相对于一整数“单”而言。

M

Margin 保证金 - 客户必须存入 的抵押资金,以便承担由反向价格运动引起的任何可能损失。

Margin Call 追加保证 - 经纪人或者交易员发出的,对额外资金或者其它抵押的要求,使保证金额到达必要数量,以便能保证向不利於客户方向移动的头寸的业绩。

Market Maker 运营者 - -提供价格,并准备以这些所述的买卖价格买入或者卖出的交易员。

Market Risk 市场风险 - 与整体市场相关的风险,并且不能以对冲或者持有多种证券等方式加以分散。

Mark-to-Market 调至市价 - 交易商以下列两种方式计算各自持有头寸:自然增长或者调至市价。自然增长系只计算已出现的资金流,因此它只表示已经实现的利得或者损失。调至市价方法在每 个交易日结束之际利用收盘汇率或者再估价汇率,测算交易商的帐面资产价 值. 所 有 利 润 或损失都被记录在帐,交易商将持有净头寸开始第二天交易。

Maturity 到期日 - 一金融工具的交易日或到期日。

N

Net Position 价位 - 还未由相反交易抵消的买/ 卖的货币数量。

O

Offer (ask) 卖出价 - 在卖出时,卖方愿意依照的价格或汇率。 参看买入价。

Offsetting transaction 抵销交易 - 用於撤销或者抵销未结头寸的部分或全部市场风险的交易。

One Cancels the Other Order (OCO) 选择性委托单 - 一 种 突 发 性定单,执行定单的一部分将自动撤销定单的另一部分。

Open order 开放定单 - 在市场价格向指定价位移动时买入或卖出的定单。通常与撤销前有效 定单相关。

Open position 未结头寸 - 尚未撤销或者清算的交易,此时投资者利益将受外汇汇率走势的影响。

Over the Counter (OTC) 柜台市场 - 用於描述任何不在交易所进行的交易。

Overnight Position 隔夜交易 - 直到第二个交易日仍保持开放的交易。

Order 指令 - 一给以交易在特定日期执行的指示。

P

Pips 点 - 在货币市场中运用的术语,表示汇率可进行的最小增幅移动。根据市场环境,正常情况下是一个基点。每 一 基点由小数点的第4 位开始计算。例, 0.0001。

Political Risk 政治风险 - 一国政府政策的变化, 此种变化可能会对投资者的头寸产生负面效果。

Position 头寸 - 头寸是一 种 以买入或卖出表达的交易意向。头寸可指投资者拥有或借用的资金数量。

Premium 升水 - 在货币市场中,升水指为判断远期或期货价格而向即期价格中添加的点数。

Price Transparency 价格透明度 - 每 一 位 市场参与者都对报价说明有平等的访问权。

Profit /Loss or "P/L" or Gain/Loss 利 润/ 损 失 - 实际操作时,完结交易的兑现利润或损失,再加上被调至市价的理论“未兑现”利润或损失。

Q

Quote 报价 - 一种指示性市场价格,显示在任何特定时间,某一证券最高买入和/或最低卖出的有效价格。

R
Rally 上升幅度 - 从一阶段的价位下降开始回升。

Range 波动范围 - 在将来的交易纪录中, 一指定阶段的最高价与最低价的差别。

Rate 汇率 - 以别种货币计的一种货币价格。

Resistance 阻力位 - 技术分析术语,表示货币无力超越的某一具体价位。货币价格多次冲击此价格点失败会产生一个通常可由一条直线构成的图案。

Revaluation 再估价汇率 - 再估价汇率是交易商在进行 每 日结算时,为确定当日利润和亏损而使用的市场汇率。 与贬 值 相 反。

Risk 风险 - 风险暴露在不 确 定变化中,收益的多变性;更重要的是,少於预期收益的可能性。

Risk Management 风险管理 - 利用金融分析与交易技术来减少和/ 或控制不同种类的风险。

Roll-Over 回购 - 一交易日期放至另一远期交易日期。这 一过程的成本为两种不同货币之间的利率差。

Round trip 双向交易 - 买和卖一指定数量之货币。

S

Settlement 清算结算 - 一笔交易并进入纪 录的过程。这一过程可以不需实际货币的有形交换。

Short Position 空头头寸 - 由卖出空头而产生的投资头寸。由於此头寸尚未被冲销,因此可从市场价格下跌中获利。

Spot Price 即期价格 - 当前市场价格。即期交易结算通常在两个交易日内发生。

Spread 价差 - 买卖价格之间的差价。

Square 轧平 - 没有多头也没有空头,即相当於持平或者轧平。

Sterling 英磅 - 英国英镑的另一名称。

Stop Loss Order 停止损失定单 - 以协议价格买入/卖出的定单。交易商还可以预设一 份 停 止损失定单,并可凭此在到达或超过指定价格时,自动清算未结头寸。 例: 如 一 投 资 者 以156.27买 入USD,他会希望下一停止损失定单为155.49,以止损于当美元跌穿155.49。

Support Levels 支撑位 - 一技术性分析中的术语,表示一货率在指定最高与最低价位间能自动调整自身走势,与阻力位相反。

Swap 掉期 - 一货币掉期为同时以远期货币汇率卖/ 买一相同数量货币。

Swissy - 瑞士法郎的另一名称。

T

Technical Analysis 技术分析 - 通过分析诸如图表、价格趋势、和交易量等市场数据,试图预报未来市场活动的作法。

Tick 替克 - 货币价格的最小单位变化。

Tomorrow Next (Tom/Next) 明日次日 - 为下一日交割同时买入和卖出一种货币。

Transaction Cost 交易成本 - 与买入或卖出一款金融工具相关的成本。

Transaction Date 交易日 - 交易发生的日期。

Turnover 交易额 - 指定时期内的交易量或交易规模。

Two-Way Price 双向报价 - 同时提供一项外汇交易的买入和卖出报价。

U


Unrealized Gain/Loss 未兑现盈利/ 损失 - 现价的为开市价位的理论上的盈利/ 损失,由经纪人单独对其做决定。未兑现盈 利/ 损失在关仓时变为实际盈利/ 损失。

Uptick 证券提价交易 - 高於同种货币较前报价的最新报价。

Uptick Rule 证券提价交易规则 - 美国法律规定证券不能被卖空,除非在卖空交易前的交易价格低於卖空交易被执行的价格。

US Prime Rate 美国基本利率 - 美国银行向其主要企业客户贷款所依照的利率。

V

Value Date 交割日 - 交割日 -交易双方同意交换款项的日期。

Variation Margin 变动保证金 - 由於市场波动,经纪人向客户提出的附加保证金要求。

Volatility (Vol) 易变性 - 在特定时期内市场价格变动的统计计量。

W
Whipsaw 锯齿 - 此词条用於说明一 种 高 速变动的市场状态,即在剧烈价格变动周期之后又紧接著出现一个反向的剧烈价格变动周期。

Y

Yard 十亿 - 十亿的另 一种说法。

a great opinion about forex brokers

I am breaking one of my New Year’s resolutions to not spend time and post anything on a bulletin board. After a lousy day in the market I decided to see what’s going on at “the factory” and all I see is whining and crying over how brokers are screwing their clients. This will be considered a rant by many but I’ll feel better when it’s over. You may not have the same experience. For the record I have no financial affiliation with any broker. I have 2 accounts with very large brokers.

I feel slightly qualified to speak on the subject because I was a professional market maker in the spot physical electricity market (like Enron but less evil) and the electronic electricity futures market.

Electricity, like any other commodity can be volatile at times. As a market maker I had a right and an obligation to both show a bid/ask and to protect and grow my company’s assets. In times of volatility I absolutely raised the spread to reflect the market uncertainty and discourage potential traders from doing business with me. If they were desperate and needed the power then I would pass on the risk associated with increased volatility to them and not me. A wide spread that turns your stomach is your broker sending you a subtle message that he is currently not interested in your business. If you choose to trade anyway and then badmouth your broker on Forex Factory then you are mentally challenged and should seek another form of entertainment.

Tight, variable spreads are all the rage now. Somehow many have overlooked the “variable” part. I hear it all the time from the people I trade with. “You paid 4 pips for the Pound, are you nuts? I can get in for 2 pips.” Yes, I do pay 4 pips for the Pound and I pay it whenever I want to trade day or night news or no news. Tight spreads work well in quiet markets. But, here’s the rub, we all seek volatility and movement and that is exactly when your broker widens the spread.

News trading died about 2 years ago when brokers stopped guaranteeing their stoplosses. They were losing their shirts by upholding their promise. One by one they all folded and sent letters to their clients saying that they could no longer stay financially solvent by honoring prices that did not exist. I personally know several “big time” traders, one of whom many of you hold in high regards, that haven’t traded successfully since those days of guaranteed price fills and free money. While I don’t want to defend brokers, they are in this business for the same reason you are; to make money and feed their families. I think they have every right to do so.

If you are trading Forex for the thrill of a quick score on an unpredictable news event you would be better off going to casino where you can at least get a free drink. News trading looks amazing on paper but as you will soon find out, it rarely matches up with reality. My personal trading vastly improved when I stopped looking at the econ calendar altogether. That’s right, I never, ever look at the calendar. I trade my technical signals and if I’m in front of a release and it goes my way then I have a good day. If not, I’m stopped out and that happens all the time in real life trading.

You can call my broker(s) a “bucket shop” if you want. I don’t care who takes the other side of my trade as long as I am on the side my system told me to be on. Brokers manage their inventory by taking the other side of your trade and by various hedging techniques. They deal with larger entities as necessary to maintain their own VAR (Value At Risk). I can’t help but smile every time someone falsely believes that their broker passed on their mini-lot trade to the mysterious and undefined “Interbank” where they receive a fair price. If you think JP Morgan or Deutsche Bank has time to put aside their billion dollar trading operations to take the other side of your trade then again, you’re mentally challenged. Your variable spread broker passes your mini-lot to a “liquidity provider” and he takes the other side of your position long before it gets to the banks. And, guess what? He buckets all of your little trades together! All you have effectively done is add another middle man to the process. Trust me, everyone is getting a piece of your pie and the more fingers there are in the pie, the bigger the pie has to be to feed everyone.

Maybe brokers are evil but let’s face the cold hard facts. If you want to trade Forex, you need a broker. No one forces you to participate in this market. You and you alone make the decision to buy or sell. When you lose it is your fault, not that of your broker. They only make the game possible, you chose to play. I learned this lesson the hard way years ago in the stock options market: I thought the floor traders were out to get me. The sooner you focus internally on the matters of discipline, risk, position sizing and lastly, a decent system the sooner you’ll become a successful trader and the less time you’ll have to gripe about your broker and spending learning systems with names like “firebird” and “phoenix”.

Best regards and happy trading,

Phil McGrew

Thursday, April 10, 2008

RFID

RFID


(pronounced as separate letters) Short for radio frequency identification, a technology similar in theory to bar code identification. With RFID, the electromagnetic or electrostatic coupling in the RF portion of the electromagnetic spectrum is used to transmit signals. An RFID system consists of an antenna and a transceiver, which read the radio frequency and transfer the information to a processing device, and a transponder, or tag, which is an integrated circuit containing the RF circuitry and information to be transmitted.

RFID systems can be used just about anywhere, from clothing tags to missiles to pet tags to food -- anywhere that a unique identification system is needed. The tag can carry information as simple as a pet owners name and address or the cleaning instruction on a sweater to as complex as instructions on how to assemble a car. Some auto manufacturers use RFID systems to move cars through an assembly line. At each successive stage of production, the RFID tag tells the computers what the next step of automated assembly is.

One of the key differences between RFID and bar code technology is RFID eliminates the need for line-of-sight reading that bar coding depends on. Also, RFID scanning can be done at greater distances than bar code scanning. High frequency RFID systems (850 MHz to 950 MHz and 2.4 GHz to 2.5 GHz) offer transmission ranges of more than 90 feet, although wavelengths in the 2.4 GHz range are absorbed by water (the human body) and therefore has limitations.

RFID is also called dedicated short range communication (DSRC).

Wednesday, April 9, 2008

外汇交易中的一些术语

今天有朋友问起外汇交易中的一些术语,问题虽然简单,但新入市的朋友不知道的可能还有不少,找了一点相关的资料,希望能对他们有用

外汇之家freewh

交易部位、头寸(POSITION)
是一种市场约定,承诺买卖外汇合约的最初部位,买进外汇合约者是多头,处于盼涨部位;卖出外汇合约为空头,处于盼跌部位。
空头、卖空、作空(SHORT)
交易预期未来外汇市场的价格将下跌,即按目前市场价格卖出一定数量的货币或期权合约,等价格下跌后再补进以了结头寸,从而获取高价卖出、低价买进的差额利润, 这种方式属于先卖后买的交易方式。(保证金适用)
多头、买入、作多(LONG)
交易者预期未来外汇市场价格将上涨,以目前的价格买进一定数量的货币,待一段时汇率上涨后,以较高价格对冲所持合约部位,从而赚取利润。这种方式属于先买后卖交易方式,正好与空头相反。
平仓、对冲 (Liquidation)
通过卖出(买进)相同的货币来了结先前所买进(卖出) 的货币。
保证金(MARGIN)
以保证合同的履行和交易损失时的担保,相当于交易额的1%(200倍)~5%(20倍), 客户履约后退还,如有亏损从保证金内相应扣除。
.
揸:买入(源自粤语)
沽:卖出(源自粤语)
.
波幅:货币在一天之中振荡的幅度
窄幅:30~50点的波动
区间:货币在一段时间内上下波动的幅度
部位:价位坐标
上档、下档:价位目标.(价位上方称为阻力位,价位下方称为支撑位)
底部:下档重要的支撑位
长期:一个月~半年以上(200点以上)
中期:一星期~一个月(100点)
短期:一天~一星期(30~50点)
.
单边市:约有10天半个月行情只上不下、只下不上
熊市:长期单边向下
牛市:长期单边向上
上落市:货币在一区间内来回、上下波动
牛皮市:行情波幅狭小
交易清淡:交易量小,波幅不大
交易活跃:交易量大,波幅很大
消耗上升:上升慢,下降快
.
上扬、下挫:货币价值因消息或其它因素有突破性的发展
胶着:盘势不明,区间狭小
盘整:一段升(跌)后在区间内整理、波动
回档、反弹:在价位波动的大趋势中,中间出现的反向行情
打底、筑底:当价位下跌到某一地点,一段时间波动不大,区间缩小(如箱型整理)
破位:突破支撑或阻力位(一般需突破20~30点以上)
假破:突然突破支撑或阻力位,但立刻回头
作收:收盘
.
上探、下探:测试价位
获利了结:平仓获利
恐慌性抛售:听到某种消息就平仓,不管价位好坏
停损、止损:方向错误,在某价位立刻平仓认赔
空头回补:原本是揸市市场,因消息或数据而走沽市.(沽入市或沽平仓)
多头回补:市场原走沽市,后改走揸市.(揸入市或揸平仓)
单日转向:本来走沽(揸)市,但下午又往揸(沽)市走,且超过开盘价
卖压:逢高点的卖单
买气:逢底价的买单
止蚀买盘:作空头方向于外汇市场卖完后,汇率不跌反涨,逼得空头不得不强补买回
.
补充:
锁单:是保证金操作常用的手法之一,就是揸(买)沽(卖)手数相同。
漂单:就是做单后不在即日(市)平仓的意思。

How to Save $5000 on Forex Trading Training and Get it Free

A very interesting training video. Enjoy

How to Save $5000 on Forex Trading Training and Get it Free

Enter Profitable Territory With Average True Range

Enter Profitable Territory With Average True Range
The indicator known as average true range (ATR) can be used to develop a complete trading system or be used for entry or exit signals as part of a strategy. Professionals have used this volatility indicator for decades to improve their trading results. Find out how to use it and why you should give it a try.

What Is ATR?
The average true range is a volatility indicator. Volatility measures the strength of the price action, and is often overlooked for clues on market direction. A better known volatility indicator is Bollinger bands. In "Bollinger on Bollinger Bands" (2002), John Bollinger writes that "high volatility begets low, and low volatility begets high." Figure 1, below, focuses solely on volatility, omitting price so that we can see that volatility follows a clear cycle.

FX Trading The Martingale Way

FX Trading The Martingale Way

Imagine a trading strategy that is practically 100% profitable - would you be interested? Most traders will probably reply with a resounding "Yes", especially since such a strategy does exist and dates all the way back to the eighteenth century. This strategy is based on probability theory and if your pockets are deep enough, it has a near 100% success rate. Known in the trading world as the martingale, this strategy was most commonly practiced in the gambling halls of Las Vegas casinos and is the main reason why casinos now have betting minimums and maximums and why the roulette wheel has two green markers (0 and 00) in addition to the odd or even bets. The problem with this strategy is that in order to achieve 100% profitability, you need to have very deep pockets - in some cases, they must be infinitely deep. Unfortunately, no one has infinite wealth, but with a theory that relies on mean reversion, one missed trade can bankrupt an entire account.Also, the amount risked on the trade is far greater than the potential gain. Despite these drawbacks, there are ways to improve the martingale strategy. In this article, we'll explore the ways you can improve your chances of succeeding at this very high risk and difficult strategy.

What is Martingale Strategy?
Popularized in the eighteenth century, the martingale was introduced by a French mathematician by the name of Paul Pierre Levy. The martingale was originally a type of betting style that was based on the premise of "doubling down". Interestingly enough, a lot of the work done on the martingale was by an American mathematician named Joseph Leo Doob, who sought to disprove the possibility of a 100% profitable betting strategy.

The mechanics of the system naturally involve an initial bet; however, each time the bet becomes a loser, the wager is doubled such that, given enough time, one winning trade will make up all of the previous losses. The introduction of the 0 and 00 on the roulette wheel was used to break the mechanics of the martingale by giving the game more than two possible outcomes other than the odd vs. even or red vs. black. This made the long-run profit expectancy of using the martingale in roulette negative and thus destroyed any incentive for using it.

To understand the basics behind the martingale strategy, let's take a look at a simple example. Suppose that we had a coin and engaged in a betting game of either head or tails with a starting wager of $1. There is an equal probability that the coin will land on a head or tails and each flip is independent, meaning that the previous flip does not impact the outcome of the next flip. As long as you stick with the same directional view each time, you would eventually, given an infinite amount of money, see the coin land on heads and regain all of your losses plus $1. The strategy is based on the premise that only one trade is needed to turn your account around.

Tuesday, April 8, 2008

Radianz

BT Radianz

From Wikipedia, the free encyclopedia

(Redirected from BTRadianz)
Jump to: navigation, search

BT Radianz (formerly known as Radianz before being acquired by BT Group plc in 2005), operates the world's largest IP-based secure financial extranet (RadianzNet) connecting worldwide financial institutions and stock markets together. Additionally, they provide Hosting services to Financial clients at 16 Global Financial Data Centers through the Proximity and Hosting Product lines. They also offer ULTRA, their Ultra Low-latency connectivity to the major exchanges, currently launced in the NY-metro area, but soon being turned up in Chicago and London.

Originally spun off by Reuters and Equant in February 2000 to create a secure and content-neutral global IP network, the service is available in all major financial centers around the world, and provides services such as multicast feeds of market data as well as normal company-to-company connectivity among financial institutions. Under BT the global reach is expected to extend to over 100 cities using their MPLS network capabilities. This company connects the financial end users to content and trading exchanges worldwide via a secure IP environment. Many clients connect to the Radianz network and access over 200 different content providers (equities, FX, fixed income.)[1]

In 2004, 2005, and 2006 the readers of Waters (Magazine) named BT Radianz Best Financial Network Provider.

Friday, April 4, 2008

Service-oriented architecture

Service-oriented architecture

From Wikipedia, the free encyclopedia

Jump to: navigation, search

Service Oriented Architecture (SOA) is a computer systems architectural style for creating and using business processes, packaged as services, throughout their lifecycle. SOA also defines and provisions the IT infrastructure to allow different applications to exchange data and participate in business processes. These functions are loosely coupled with the operating systems and programming languages underlying the applications.[1] SOA separates functions into distinct units (services), which can be distributed over a network and can be combined and reused to create business applications.[2] These services communicate with each other by passing data from one service to another, or by coordinating an activity between two or more services. SOA concepts are often seen as built upon, and evolving from older concepts of distributed computing[2] and modular programming.