EasyTrader ArtNo 188
黃豆源起於數千年前的亞洲東部之豆科植物,生長所需肥料不多,抗蟲能力亦強。最初以食用為主,之後發現其可壓榨後作為食用油之用,此即為黃豆油之由來。1877年由傳教士在歐洲各地推廣,1900年成為美國中西部的普及作物。美國黃豆種植通常在四月初至五月初開始整地工作,五月上旬至下旬之間完成播種。黃豆正常的生長季約為四個月,因此五月播種的作物至九月方可採收。若是播種前的準備工作受到氣候影響而延誤,將使得黃豆的收成延至秋季十月,必須冒初雪提早來臨的風險,因此播種以不遲於六月為佳。四個月的生長季中,黃豆所需的氣溫和玉米相差不大,高溫對成長有害,低溫則會延遲開花。五、六月為發芽期,雨量以正常至稍高為宜。七、八月為開花及結豆莢的時期,七月下旬的快速成長及八月下旬的種子充填階段所需的溼度增加,因此溼度要求較正常為高。由於開花、豆莢數及種子大小決定了黃豆的收成,所以氣候條件將成為決定收成的重要關鍵。若七月開花期遇到乾旱,但八月豆莢期條件合宜,仍有可能好收成;不過若八月後氣候不利,則收成不佳的機率相對提高。
黃豆因其具有高蛋白質及油脂的特性,所以衍生出來的黃豆粉及黃豆油便成了重要的副產品。每浦式耳的黃豆重約60磅,可壓榨出47.5磅左右的黃豆粉與11 磅的黃豆油,其餘則為水分及殘渣。黃豆的加工處理方式有機械壓榨法及化學淬取法二種,淬油之前一般先去除外殼,油脂分離後剩下蛋白質48﹪的黃豆粉,若再加入外殼,蛋白質成分則降至44﹪,為美國交易最廣的標準品質。有時可將黃豆粉壓縮成餅狀,稱為黃豆餅。黃豆粉由於其豐富的蛋白質,因此主要用於飼料配比的成分。因為在耐儲性上黃豆粉遠低於黃豆油,所以黃豆粉的庫藏量相當低,因此壓榨的黃豆量幾乎決定於黃豆粉的需求量。黃豆油需求量為七大植物油(黃豆油、棕櫚油、油菜籽油、葵花油、椰子油、花生油及橄欖油)之首,約佔三成左右,用途上以沙拉油、人造奶油、鬆脆劑為主。
一般農作物如玉米在生長時必須吸收土壤中的氮,但黃豆卻是於生長時將氮轉存於土壤之中,因此為了要取得土壤的平衡及提高收成量,部分土壤性質較差的地區,往往將黃豆及玉米視為輪耕作物。美國為世界黃豆產量最高的國家,佔全球產量五成以上,產地主要集中在五大湖南方,因此這裡的氣候狀況獲得黃豆交易人的高度關切,且位於密西根湖南岸的伊利諾州首府芝加哥,自然成為美國穀物的現貨及期貨的交易重鎮。除了美國外,巴西、中國及阿根廷也是黃豆的重要生產國。不過由於中國的黃豆以自給自足為目標,因此主要出口國以美國、巴西及阿根廷為主。
1950年之後黃豆的需求量大幅成長,其主要原因有三:
一、美國農業政策限制小麥及玉米的生產。
二、美國國內對肉品需求逐年遞增。
三、國際黃豆需求的大增。由於需求量的增加,配合影響因素的複雜化,使得黃豆的價格相對於其他穀物表現活絡,也因此吸引不少投資人的目光。
價格影響因素
1.供給與需求
供給方面以美國、巴西、阿根廷等主要出口國生產情形為觀察重點,舉凡農業政策、種植面積、庫存量、生長氣候等都會影響到供給的數量。而在需求方面,由於受到黃豆粉及黃豆油的直接影響,所以三者的供需情況有密切的相關性。其中黃豆粉由於不耐儲藏,因此庫存量往往很低,需求的敏感度較高,對黃豆需求的帶動也較為直接。黃豆油部分,因為植物油的種類多,加上地域性的實用習慣不同,使得替代品的作用明顯,對黃豆的需求往往影響力不若黃豆粉。而在壓榨的過程中,黃豆粉及黃豆油同時產生,不過價值的比例約為3:2,因此黃豆油常被視為黃豆粉的副產品。而需求量方面可觀察美國、日本、歐洲及蘇聯等國家的使用狀況。
2.季節性循環
農產品受到生長季節的影響十分明顯,黃豆的價格一般而言在第三季收成期由於供給增加,往往此期間價格最低,之後逐步走揚至次年的第二季。至於黃豆粉和黃豆油在黃豆收成後才會進行生產,因此數量上往往在收成期之後一至二個月才會大幅增加,但需求量也在此時最大,使得價格下跌的因素受到抵銷。在黃豆粉方面,需求通常在冬季達到高峰,因此價格由秋末冬初上揚至年底。另一波的上揚則是由初春低點到夏末的高點。至於黃豆油的季節循環較不明顯,不過高點往往落在上半年,而低點則是在下半年出現。以下則就三者1994-2000年的期貨價格高低點進行分析,頗符合季節性的循環。
3.氣候條件
主要產地如美國、巴西及阿根廷等,從播種到收成期間的氣候條件對黃豆的生產量有決定性的關係,尤其是發芽期的溫度及開花結莢期的溼度更為重要。
4.壓榨利潤
計算方式為單位產出的副產品價格扣除原料成本。平均來說壓榨利潤以40美分/浦式耳為平衡點,一旦高於此標準,則市場會傾向買進原料進行壓榨,因此會造成黃豆價格因需求增加上漲,而副產品價格則因產出增加而下滑,進而縮小壓榨的利潤。反之,若利潤過低,業者不熱中壓榨業務,使得原料價格因需求減少而下滑,副產品價格則在供給減少的影響下上揚,進而擴大壓榨的利潤。
5.替代品
黃豆的替代品可以玉米為主要觀察商品,因為生長氣候及用途上的相似點多,使得黃豆玉米的價格比維持一定的關係,約在2.5上下變動。種植面積傾向於對價格有利的商品,進而影響到產量的多寡。而黃豆粉的替代品有魚粉及其他榖類的高蛋白粉,其中魚粉更是造成黃豆期約歷史天價每浦式耳1290美分的主因,原由如下:由於魚粉蛋白質成分較黃豆粉高,因此在飼料配比上為一項重要的來源,那時全球魚粉最大的來源為祕魯海岸附近的鯷魚,但在1972-1973年間鯷魚突然不再游近沿岸,使得高蛋白質飼料嚴重缺乏,加上蘇聯葵花籽及印度花生因氣候因素短缺,牲畜量的大增造成需求的增加,因而造成黃豆及黃豆粉爆炸性的走勢。而飼料的價格與牲畜的價格也具一定關係,當牲畜價格有利時,飼料配比傾向於加入高蛋白質的黃豆粉;反之若牲畜價格不利時,則以加入碳水化合物的玉米粉為主。而黃豆油則以棕櫚油、油菜籽油、葵花油、椰子油、花生油及橄欖油等植物油的價格變化為參考,不過在研究之時,仍需考慮地域性的因素,如美國以黃豆油及葵花油為主,亞洲如馬來西亞與印尼以棕櫚油為主,歐洲某些地方如義大利偏好橄欖油等。
6.匯率
由於黃豆的出口國集中於某些國家,尤其是美國,因此匯率的變動對其進口的成本有一定的關係,當美元相對於其他貨幣強勢時,使得黃豆以他國幣值計價相對較高,因此對美國的出口量會有一定的負面影響。
7.商品間的相關性
黃豆由於具有副產品(黃豆粉、黃豆油)、替代商品(玉米)、用途商品(活豬、活牛)等複雜的關係,因此在衡量相關價格上商品多樣性或許是黃豆的一項特質。以這些商品期貨週線圖來比較。其中黃豆、黃豆粉、黃豆油、玉米、活豬的一致性較為明顯。
價格影響因素
1.供給與需求
供給方面以美國、巴西、阿根廷等主要出口國生產情形為觀察重點,舉凡農業政策、種植面積、庫存量、生長氣候等都會影響到供給的數量。而在需求方面,由於受到黃豆粉及黃豆油的直接影響,所以三者的供需情況有密切的相關性。其中黃豆粉由於不耐儲藏,因此庫存量往往很低,需求的敏感度較高,對黃豆需求的帶動也較為直接。黃豆油部分,因為植物油的種類多,加上地域性的實用習慣不同,使得替代品的作用明顯,對黃豆的需求往往影響力不若黃豆粉。而在壓榨的過程中,黃豆粉及黃豆油同時產生,不過價值的比例約為3:2,因此黃豆油常被視為黃豆粉的副產品。而需求量方面可觀察美國、日本、歐洲及蘇聯等國家的使用狀況。
2.季節性循環
農產品受到生長季節的影響十分明顯,黃豆的價格一般而言在第三季收成期由於供給增加,往往此期間價格最低,之後逐步走揚至次年的第二季。至於黃豆粉和黃豆油在黃豆收成後才會進行生產,因此數量上往往在收成期之後一至二個月才會大幅增加,但需求量也在此時最大,使得價格下跌的因素受到抵銷。在黃豆粉方面,需求通常在冬季達到高峰,因此價格由秋末冬初上揚至年底。另一波的上揚則是由初春低點到夏末的高點。至於黃豆油的季節循環較不明顯,不過高點往往落在上半年,而低點則是在下半年出現。以下則就三者1994-2000年的期貨價格高低點進行分析,頗符合季節性的循環。
3.氣候條件
主要產地如美國、巴西及阿根廷等,從播種到收成期間的氣候條件對黃豆的生產量有決定性的關係,尤其是發芽期的溫度及開花結莢期的溼度更為重要。
4.壓榨利潤
計算方式為單位產出的副產品價格扣除原料成本。平均來說壓榨利潤以40美分/浦式耳為平衡點,一旦高於此標準,則市場會傾向買進原料進行壓榨,因此會造成黃豆價格因需求增加上漲,而副產品價格則因產出增加而下滑,進而縮小壓榨的利潤。反之,若利潤過低,業者不熱中壓榨業務,使得原料價格因需求減少而下滑,副產品價格則在供給減少的影響下上揚,進而擴大壓榨的利潤。
5.替代品
黃豆的替代品可以玉米為主要觀察商品,因為生長氣候及用途上的相似點多,使得黃豆玉米的價格比維持一定的關係,約在2.5上下變動。種植面積傾向於對價格有利的商品,進而影響到產量的多寡。而黃豆粉的替代品有魚粉及其他榖類的高蛋白粉,其中魚粉更是造成黃豆期約歷史天價每浦式耳1290美分的主因,原由如下:由於魚粉蛋白質成分較黃豆粉高,因此在飼料配比上為一項重要的來源,那時全球魚粉最大的來源為祕魯海岸附近的鯷魚,但在1972-1973年間鯷魚突然不再游近沿岸,使得高蛋白質飼料嚴重缺乏,加上蘇聯葵花籽及印度花生因氣候因素短缺,牲畜量的大增造成需求的增加,因而造成黃豆及黃豆粉爆炸性的走勢。而飼料的價格與牲畜的價格也具一定關係,當牲畜價格有利時,飼料配比傾向於加入高蛋白質的黃豆粉;反之若牲畜價格不利時,則以加入碳水化合物的玉米粉為主。而黃豆油則以棕櫚油、油菜籽油、葵花油、椰子油、花生油及橄欖油等植物油的價格變化為參考,不過在研究之時,仍需考慮地域性的因素,如美國以黃豆油及葵花油為主,亞洲如馬來西亞與印尼以棕櫚油為主,歐洲某些地方如義大利偏好橄欖油等。
6.匯率
由於黃豆的出口國集中於某些國家,尤其是美國,因此匯率的變動對其進口的成本有一定的關係,當美元相對於其他貨幣強勢時,使得黃豆以他國幣值計價相對較高,因此對美國的出口量會有一定的負面影響。
7.商品間的相關性
黃豆由於具有副產品(黃豆粉、黃豆油)、替代商品(玉米)、用途商品(活豬、活牛)等複雜的關係,因此在衡量相關價格上商品多樣性或許是黃豆的一項特質。以這些商品期貨週線圖來比較。其中黃豆、黃豆粉、黃豆油、玉米、活豬的一致性較為明顯。
資料來源 - 元大寶來期貨資訊網
60 分K 測試程式碼 - 人工智慧策略產生器輸出
{ ***** System Code Start here *****}
{ Public inputs }
Inputs:LuckyNet(0),IntraDay(2), TradeStopLoss(0.026),TradeProfit(0.024) ;
Inputs:TradeInday(1),Time1SW(1),Time1B(600),Time1E(1100) ;
Inputs:Time2SW(0),Time2B(900),Time2E(1300),Time3SW(0) ;
Inputs:Time3B(900),Time3E(1300),PositionSW(0) ;
inputs:Frac_LMM(3.09),NBar_LM(3),Frac_SMM(1.59),NBar_SM(11) ;
{ Public Variables }
Vars:Cond_LE(false),Cond_SE(false),CondNet_L(false),CondNet_S(false),
UBuy(0),USell(0),BuyStop(0),SellStop(0),BuyStopA(0),SellStopA(0),
NewBuyStopA(0),NewSellStopA(0),PL(0),PS(0),LastTradeDay(false) ;
Vars:TimeOK1(true),TimeOK2(true),TimeOK3(true),PosSW(true) ;
{ BuyMode Setup }
inputs:NBar_LE(17),Frac_LE(0.71) ;
{ SellMode Setup }
inputs:NBar_SE(19),Frac_SE(2.05) ;
{ Exit Long Position Setup }
inputs:NBar_LX(59) ;
{ Exit Short Position Setup }
{ BuyMode Variable Setup }
Vars:LE_ATR(0) ;
{ SellMode Variable Setup }
Vars:SE_ATR(0) ;
{ Exit Long Position Variable Setup }
Vars:TL_ATR(0),Trigger_TLA(false) ;
Vars:LMM_ATR(0) ;
{ Exit Short Position Variable Setup }
Vars:SMM_ATR(0) ;
{ ***** LastTradeDay ***** }
{LastTradeDay = _MagicQS268_LTD ;}
{ initial profit and loss }
if MarketPosition = 0 then begin
PL = AvgPrice*TradeProfit ;
PS = AvgPrice*TradeStopLoss ;
end ;
{ ATR calculate for code }
LMM_ATR = AvgTrueRange(NBar_LM);
LE_ATR = AvgTrueRange(NBar_LE);
SMM_ATR = AvgTrueRange(NBar_SM);
SE_ATR = AvgTrueRange(NBar_SE);
{ Entry and Exit prices }
UBuy = Close[1] + Frac_LE * LE_ATR ;
USell = High[1] - Frac_SE * SE_ATR ;
{ Long and Short Entry Condition Setup }
Cond_LE = MOD(DayofMonth(Date),4) = 0 ;
Cond_SE = DayofMonth(Date) <= 7 ;
{ Combine Trade Number in day }
Cond_LE = Cond_LE and EntriesToday(date) <= TradeInDay ;
Cond_SE = Cond_SE and EntriesToday(date) <= TradeInDay ;
{ Combine Trade time zone in day }
if Time1SW = 0 then TimeOK1 = true else TimeOK1 = (time >= Time1B and time <= Time1E) ;
if Time2SW = 0 then TimeOK2 = true else TimeOK2 = (time >= Time2B and time <= Time2E) ;
if Time3SW = 0 then TimeOK3 = true else TimeOK3 = (time >= Time3B and time <= Time3E) ;
Cond_LE = Cond_LE and TimeOK1 ;
Cond_SE = Cond_SE and TimeOK1 ;
{ Check Position status for entry}
if PositionSW = 0 then PosSW = true else PosSW = (MarketPosition = 0) ;
Cond_LE = Cond_LE and PosSW ;
Cond_SE = Cond_SE and PosSW ;
{ Entry Long orders }
if Cond_LE then Buy next bar at UBuy Stop ;
{ Entry Short orders }
if Cond_SE then SellShort next bar at USell Stop ;
{ Exit orders, long trades }
If MarketPosition > 0 then begin
PL = EntryPrice(0)* TradeProfit;
PS = EntryPrice(0)* TradeStopLoss ;
If BarsSinceEntry = 0 then begin
BuyStop = EntryPrice - Frac_LMM * LMM_ATR;
end;
if BarsSinceEntry >= NBar_LX then Sell next bar at Market ;
Sell next bar at BuyStop stop;
end;
{ Exit orders, short trades }
If MarketPosition < 0 then begin
PL = EntryPrice(0)* TradeProfit;
PS = EntryPrice(0)* TradeStopLoss ;
If BarsSinceEntry = 0 then begin
SellStop = EntryPrice + Frac_SMM * SMM_ATR;
end;
SetStopLoss(PS * BigPointValue) ;
end;
if IntraDay = 0 then SetExitonClose
else if IntraDay = 1 and LastTradeDay then SetExitonClose ;
{***************** End of Strategy ************}
{ ***** System Code Start here *****}
{ Public inputs }
Inputs:LuckyNet(0),IntraDay(2), TradeStopLoss(0.026),TradeProfit(0.024) ;
Inputs:TradeInday(1),Time1SW(1),Time1B(600),Time1E(1100) ;
Inputs:Time2SW(0),Time2B(900),Time2E(1300),Time3SW(0) ;
Inputs:Time3B(900),Time3E(1300),PositionSW(0) ;
inputs:Frac_LMM(3.09),NBar_LM(3),Frac_SMM(1.59),NBar_SM(11) ;
{ Public Variables }
Vars:Cond_LE(false),Cond_SE(false),CondNet_L(false),CondNet_S(false),
UBuy(0),USell(0),BuyStop(0),SellStop(0),BuyStopA(0),SellStopA(0),
NewBuyStopA(0),NewSellStopA(0),PL(0),PS(0),LastTradeDay(false) ;
Vars:TimeOK1(true),TimeOK2(true),TimeOK3(true),PosSW(true) ;
{ BuyMode Setup }
inputs:NBar_LE(17),Frac_LE(0.71) ;
{ SellMode Setup }
inputs:NBar_SE(19),Frac_SE(2.05) ;
{ Exit Long Position Setup }
inputs:NBar_LX(59) ;
{ Exit Short Position Setup }
{ BuyMode Variable Setup }
Vars:LE_ATR(0) ;
{ SellMode Variable Setup }
Vars:SE_ATR(0) ;
{ Exit Long Position Variable Setup }
Vars:TL_ATR(0),Trigger_TLA(false) ;
Vars:LMM_ATR(0) ;
{ Exit Short Position Variable Setup }
Vars:SMM_ATR(0) ;
{ ***** LastTradeDay ***** }
{LastTradeDay = _MagicQS268_LTD ;}
{ initial profit and loss }
if MarketPosition = 0 then begin
PL = AvgPrice*TradeProfit ;
PS = AvgPrice*TradeStopLoss ;
end ;
{ ATR calculate for code }
LMM_ATR = AvgTrueRange(NBar_LM);
LE_ATR = AvgTrueRange(NBar_LE);
SMM_ATR = AvgTrueRange(NBar_SM);
SE_ATR = AvgTrueRange(NBar_SE);
{ Entry and Exit prices }
UBuy = Close[1] + Frac_LE * LE_ATR ;
USell = High[1] - Frac_SE * SE_ATR ;
{ Long and Short Entry Condition Setup }
Cond_LE = MOD(DayofMonth(Date),4) = 0 ;
Cond_SE = DayofMonth(Date) <= 7 ;
{ Combine Trade Number in day }
Cond_LE = Cond_LE and EntriesToday(date) <= TradeInDay ;
Cond_SE = Cond_SE and EntriesToday(date) <= TradeInDay ;
{ Combine Trade time zone in day }
if Time1SW = 0 then TimeOK1 = true else TimeOK1 = (time >= Time1B and time <= Time1E) ;
if Time2SW = 0 then TimeOK2 = true else TimeOK2 = (time >= Time2B and time <= Time2E) ;
if Time3SW = 0 then TimeOK3 = true else TimeOK3 = (time >= Time3B and time <= Time3E) ;
Cond_LE = Cond_LE and TimeOK1 ;
Cond_SE = Cond_SE and TimeOK1 ;
{ Check Position status for entry}
if PositionSW = 0 then PosSW = true else PosSW = (MarketPosition = 0) ;
Cond_LE = Cond_LE and PosSW ;
Cond_SE = Cond_SE and PosSW ;
{ Entry Long orders }
if Cond_LE then Buy next bar at UBuy Stop ;
{ Entry Short orders }
if Cond_SE then SellShort next bar at USell Stop ;
{ Exit orders, long trades }
If MarketPosition > 0 then begin
PL = EntryPrice(0)* TradeProfit;
PS = EntryPrice(0)* TradeStopLoss ;
If BarsSinceEntry = 0 then begin
BuyStop = EntryPrice - Frac_LMM * LMM_ATR;
end;
if BarsSinceEntry >= NBar_LX then Sell next bar at Market ;
Sell next bar at BuyStop stop;
end;
{ Exit orders, short trades }
If MarketPosition < 0 then begin
PL = EntryPrice(0)* TradeProfit;
PS = EntryPrice(0)* TradeStopLoss ;
If BarsSinceEntry = 0 then begin
SellStop = EntryPrice + Frac_SMM * SMM_ATR;
end;
SetStopLoss(PS * BigPointValue) ;
end;
if IntraDay = 0 then SetExitonClose
else if IntraDay = 1 and LastTradeDay then SetExitonClose ;
{***************** End of Strategy ************}
黃豆期貨 15分K 留倉 交易週期 2008/04/16 ~ 2014/5/30 交易成本 美金 30 元
黃豆期貨 15分K 當沖 交易週期 2008/04/16 ~ 2014/5/30 交易成本 美金 30 元
沒有留言:
張貼留言