Price Data Components
Indicators Used
0
Views
0
Downloads
0
Favorites
CurrencyDeviation-V1b04_v1
//---------------------------------------------------------------------
// Îáçîð ðûíêà.
// Ïîçâîëÿåò â îäíîì ýêðàíå âèäåòü äâèæåíèå äî 16 èíñòðóìåíòîâ
// ïî 4 òàéì-ôðåéìàì.
//---------------------------------------------------------------------
//---------------------------------------------------------------------
// Èñòîðèÿ âåðñèé:
//---------------------------------------------------------------------
// 30.09.2009ã. - V1b01
// - íà÷àëüíàÿ âåðñèÿ;
//
// 01.10.2009ã. - V1b02
// - èñïðàâëåíà îøèáêà ïðè èçìåíåíèè â ñïèñêå ÒÔ ( íå óäàëÿëèñü îáúåêòû
// äëÿ ñòàðûõ ÒÔ );
// - ñäåëàíî îãðàíè÷åíèå ÷èñëà ÒÔ ( äî 4 ) è ÷èñëà âàëþò ( äî 16 ),
// îäíîâðåìåííî îòîáðàæàåìûõ â îêíå;
//
// 02.10.2009ã. - V1b03
// - äîáàâëåí âûâîä äîïîëíèòåëüíûõ ïîëåé ( ñïðýä, ñòîï-ëåâåë, äíåâíîé
// äèàïàçîí, ñðåäíèé äíåâíîé äèàïàçîí );
//
// 13.10.2009ã. - V1b04
// - ñäåëàí âûâîä öèôðîâûõ ïîëåé â ãëàâíîå îêíî âìåñòî äîïîëíèòåëüíîãî;
//---------------------------------------------------------------------
//---------------------------------------------------------------------
#property copyright "Copyright © 2009, Dima S."
#property link "ddd003@mail.ru"
//---------------------------------------------------------------------
//---------------------------------------------------------------------
////#property indicator_chart_window
#property indicator_separate_window
//---------------------------------------------------------------------
//---------------------------------------------------------------------
#property indicator_minimum -3.0
#property indicator_maximum +3.0
//---------------------------------------------------------------------
#property indicator_level1 -1.5
#property indicator_level2 -1.0
#property indicator_level3 -0.5
#property indicator_level4 +1.5
#property indicator_level5 +1.0
#property indicator_level6 +0.5
#property indicator_level7 +0.0
//---------------------------------------------------------------------
//---------------------------------------------------------------------
#define INDICATOR_NAME "CurrencyDeviation"
#define INDICATOR_VERSION "V1"
#define INDICATOR_SUB_VERSION "b04"
//---------------------------------------------------------------------
//---------------------------------------------------------------------
#define TREND_UP 1
#define TREND_DN -1
#define NO_TREND 0
//---------------------------------------------------------------------
//---------------------------------------------------------------------
// Âíåøíèå ïîäêëþ÷àåìûå ìîäóëè:
//---------------------------------------------------------------------
#include <stdlib.mqh> // ñòàíäàðòíàÿ áèáëèîòåêà
#include <lib_display.mqh> // áèáëèîòåêà äëÿ âûâîäà äàííûõ íà ýêðàí
//---------------------------------------------------------------------
// Ãëîáàëüíûå ïåðåìåííûå:
//---------------------------------------------------------------------
extern string CurrencyList="EURUSD; GBPUSD; AUDUSD; NZDUSD; USDCHF; USDCAD; USDJPY; CADJPY; EURJPY; GBPJPY; AUDJPY; NZDJPY; CHFJPY; EURCHF; GBPCHF; GOLD";
extern string TimeFrameList="H1; H4; D1; W1";
//---------------------------------------------------------------------
extern int ShowAddingFields=1; // âûâîä äîïîëíèòåëüíûõ ïîëåé ( ñïðýä è ò.ä. )
//---------------------------------------------------------------------
extern int InfoTopShift = 20; // ñìåùåíèå ñâåðõó äëÿ âûâîäèìîé íà ýêðàí èíôîðìàöèè
extern int InfoLeftShift = 5; // ñìåùåíèå ñëåâà äëÿ âûâîäèìîé íà ýêðàí èíôîðìàöèè
extern int FontSize=10; // ðàçìåð øðèôòà äëÿ âûâîäà òàáëèöû
//---------------------------------------------------------------------
static string timeframes[];
static int timeframes_count=0;
//---------------------------------------------------------------------
static string currencies[];
static int currencies_count=0;
//---------------------------------------------------------------------
static int currency_x[ ] = { 0, 50, 120, 190, 260, 330, 400, 470, 540, 610, 680, 750, 820, 890, 960, 1030, 1110 };
static int rect_x[ ] = { 267, 249, 231, 214, 197, 179, 162, 145, 127, 110, 92, 75, 57, 40, 22, 2 };
//---------------------------------------------------------------------
static int rect_w[ ] = { 1,1, 2, 2, 4 }; // òîëùèíà ëèíèé ïðÿìîóãîëüíèêîâ
static int rect_s[ ] = { 4, 6, 8, 12, 14 }; // øèðèíà ïðÿìîóãîëüíèêîâ
static color rect_c_up[ ] = { PaleGreen, Lime, Lime, Green, Lime };
static color rect_c_dn[ ] = { Pink, Red, Red, Brown, Red };
static bool rect_back[ ]={ TRUE,FALSE,FALSE,FALSE,FALSE };
static string columns[]={ "Bid:","Sprd:","StLev:","Hi-Lo:","AvrgD:" };
//---------------------------------------------------------------------
//---------------------------------------------------------------------
int tf_start_row;
int bid_row_count;
//---------------------------------------------------------------------
int is_initialised=0;
int indicator_wnd;
//---------------------------------------------------------------------
double current_point_multiplier; // ìíîæèòåëü ïðè âûâîäå íà ýêðàí ïóíêòîâ
int current_digits;
double current_point;
//---------------------------------------------------------------------
// Èíèöèàëèçàöèÿ:
//---------------------------------------------------------------------
int init()
{
is_initialised=0;
return(0);
}
//---------------------------------------------------------------------
// Äåèíèöèàëèçàöèÿ:
//---------------------------------------------------------------------
int deinit()
{
delete_table();
delete_rects();
is_initialised=0;
return(0);
}
//---------------------------------------------------------------------
// Âûçûâàåòñÿ ïðè êàæäîì òèêå ïî äàííîìó èíñòðóìåíòó:
//---------------------------------------------------------------------
#define LEFT_SHIFT 260
//---------------------------------------------------------------------
color price_color;
double price;
double price_ma;
//---------------------------------------------------------------------
int start()
{
if(is_initialised==0)
{
initialise();
is_initialised=1;
}
for(int curr_index=0; curr_index<currencies_count; curr_index++)
{
price=MarketInfo(currencies[curr_index],MODE_BID);
price_ma=iMA(currencies[curr_index],PERIOD_M1,1,0,MODE_EMA,PRICE_CLOSE,1);
current_digits=(int)MarketInfo(currencies[curr_index],MODE_DIGITS);
if(current_digits==5 || current_digits==3)
{
current_point_multiplier=0.1;
}
else
{
current_point_multiplier=1.0;
}
current_point=MarketInfo(currencies[curr_index],MODE_POINT);
if(price<price_ma)
price_color=Red;
else if(price>price_ma)
price_color = Lime;
else if( price == price_ma )
price_color = Orange;
set_cell_text(1,curr_index+1,DoubleToStr(price,current_digits),price_color);
if(ShowAddingFields==1)
{
double R1=0,R5=0,R10=0,R20=0,RAvg=0,AV_Yest,spread,stoplevel,hilo;
R1=(iHigh(currencies[curr_index],PERIOD_D1,1)-iLow(currencies[curr_index],PERIOD_D1,1))/current_point;
for(int i=1; i<=5; i++)
{
R5=R5+(iHigh(currencies[curr_index],PERIOD_D1,i)-iLow(currencies[curr_index],PERIOD_D1,i))/current_point;
}
for(i=1; i<=10; i++)
{
R10=R10+(iHigh(currencies[curr_index],PERIOD_D1,i)-iLow(currencies[curr_index],PERIOD_D1,i))/current_point;
}
for(i=1; i<=20; i++)
{
R20=R20+(iHigh(currencies[curr_index],PERIOD_D1,i)-iLow(currencies[curr_index],PERIOD_D1,i))/current_point;
}
RAvg=(R1+R5/5.0+R10/10.0+R20/20.0)/4.0*current_point_multiplier;
AV_Yest=(iHigh(currencies[curr_index],PERIOD_D1,1)-iLow(currencies[curr_index],PERIOD_D1,1))/current_point*current_point_multiplier;
spread=current_point_multiplier*MarketInfo(currencies[curr_index],MODE_SPREAD);
stoplevel=current_point_multiplier*MarketInfo(currencies[curr_index],MODE_STOPLEVEL);
hilo=(iHigh(currencies[curr_index],PERIOD_D1,0)-iLow(currencies[curr_index],PERIOD_D1,0))*current_point_multiplier/current_point;
string adding;
if(spread>=10.0)
{
adding=" ";
}
else
{
adding=" ";
}
set_cell_text(2,curr_index+1,adding+DoubleToStr(spread,1),LemonChiffon);
if(stoplevel>=100.0)
{
adding=" ";
}
else if(stoplevel>=10.0)
{
adding=" ";
}
else
{
adding=" ";
}
set_cell_text(3,curr_index+1,adding+DoubleToStr(stoplevel,1),LemonChiffon);
if(hilo>=100.0)
{
adding="";
}
else if(hilo>=10.0)
{
adding=" ";
}
else
{
adding=" ";
}
set_cell_text(4,curr_index+1,adding+DoubleToStr(hilo,1),LightSteelBlue);
if(RAvg>=100.0)
{
adding="";
}
else if(RAvg>=10.0)
{
adding=" ";
}
else
{
adding=" ";
}
if(RAvg>=AV_Yest)
{
set_cell_text(5,curr_index+1,adding+DoubleToStr(RAvg,1),Lime);
}
else
{
set_cell_text(5,curr_index+1,adding+DoubleToStr(RAvg,1),Red);
}
}
for(int tf_index=0; tf_index<timeframes_count; tf_index++)
{
int tf=get_timeframe_from_string(timeframes[tf_index]);
double dev=get_deviation(currencies[curr_index],tf,0);
if(dev>0.0005)
{
set_cell_text(tf_index+1+bid_row_count,curr_index+1,"+"+DoubleToStr(dev,3)+" %",get_number_color(0.0005,dev,PaleGreen,Pink,Silver));
}
else if(dev<-0.0005)
{
set_cell_text(tf_index+1+bid_row_count,curr_index+1," "+DoubleToStr(dev,3)+" %",get_number_color(0.0005,dev,PaleGreen,Pink,Silver));
}
else
{
set_cell_text(tf_index+1+bid_row_count,curr_index+1," "+DoubleToStr(0.0,3)+" %",get_number_color(0.0005,dev,PaleGreen,Pink,Silver));
}
create_rect(0.0,dev,currencies[curr_index],timeframes[tf_index],rect_x[curr_index],rect_s[tf_index],rect_w[tf_index],get_number_color(0.0005,dev,rect_c_up[tf_index],rect_c_dn[tf_index],Silver),rect_back[tf_index]);
}
}
return(0);
}
//---------------------------------------------------------------------
// Óäàëåíèå ãðàôè÷åñêèõ îáúåêòîâ:
//---------------------------------------------------------------------
void delete_rects()
{
for(int column=0; column<currencies_count; column++)
{
for(int row=0; row<timeframes_count; row++)
{
ObjectDelete(currencies[column]+"-"+timeframes[row]);
}
}
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void create_rect(double _low,double _high,string _symbol,string _timeframe,int _shift,int _size,int _width,color _color,bool _solid)
{
string name=_symbol+"-"+_timeframe;
if(ObjectFind(name)!=indicator_wnd)
{
ObjectCreate(name,OBJ_RECTANGLE,indicator_wnd,Time[_shift+10],_low,Time[_shift+20],_high);
}
else
{
ObjectSet(name,OBJPROP_TIME1,Time[_shift+10+(12-_size)/2]);
ObjectSet(name,OBJPROP_PRICE1,_low);
ObjectSet(name,OBJPROP_TIME2,Time[_shift+20 -(12-_size)/2]);
ObjectSet(name,OBJPROP_PRICE2,_high);
}
ObjectSet(name,OBJPROP_WIDTH,_width);
ObjectSet(name,OBJPROP_BACK,_solid);
ObjectSet(name,OBJPROP_COLOR,_color);
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
double get_deviation(string _symbol,int _timeframe,int _shift)
{
double iopen= iOpen(_symbol,_timeframe,_shift);
double iclose = iClose(_symbol,_timeframe,_shift);
PrintFormat("_symbol=%s _timeframe=%d _shift=%d iopen=%f iclose=%f",_symbol,_timeframe,_shift,iopen,iclose);
double dev=100.0 *(iclose-iopen)/iopen;
return(dev);
}
//---------------------------------------------------------------------
// Ïðåîáðàçóåò ÒÔ èç ñòðîêè â ÷èñëî:
//---------------------------------------------------------------------
int get_timeframe_from_string(string _str)
{
if(_str=="M1")
{
return(PERIOD_M1);
}
if(_str=="M5")
{
return(PERIOD_M5);
}
if(_str=="M15")
{
return(PERIOD_M15);
}
if(_str=="M30")
{
return(PERIOD_M30);
}
if(_str=="H1")
{
return(PERIOD_H1);
}
if(_str=="H4")
{
return(PERIOD_H4);
}
if(_str=="D1")
{
return(PERIOD_D1);
}
if(_str=="W1")
{
return(PERIOD_W1);
}
if(_str=="MN1")
{
return(PERIOD_MN1);
}
return(PERIOD_D1);
}
//---------------------------------------------------------------------
// Íà÷àëüíàÿ èíèöèàëèçàöèÿ:
//---------------------------------------------------------------------
void initialise()
{
indicator_wnd=WindowFind(WindowExpertName());
if(indicator_wnd==-1)
{
indicator_wnd=WindowsTotal();
}
currencies_count=StringToArrayString(CurrencyList,currencies);
if(currencies_count>16)
{
currencies_count=16;
}
timeframes_count=StringToArrayString(TimeFrameList,timeframes);
if(timeframes_count>4)
{
timeframes_count=4;
}
// Íàñòðîèì íà÷àëüíûå êîîðäèíàòû ñòðîê:
if(ShowAddingFields==0)
{
tf_start_row=2;
bid_row_count=1;
}
else
{
tf_start_row=6;
bid_row_count=5;
}
create_table(0,"CurrencyTable",timeframes_count+1+bid_row_count,currencies_count+1);
clear_table();
// Èíèöèàëèçèðóåì ïåðâóþ ñòðîêó ( íàçâàíèÿ èíñòðóìåíòîâ ):
for(int column=0; column<currencies_count+1; column++)
{
set_cell_attributes(0,column,InfoLeftShift+currency_x[column],InfoTopShift,LightCyan,FontSize);
if(column==0)
{
set_cell_text(0,column,"",Black);
}
else
{
set_cell_text(0,column,currencies[column-1],get_currency_color(currencies[column-1]));
}
}
// Èíèöèàëèçèðóåì âòîðóþ ñòðîêó äëÿ âûâîäà òåêóùèõ êîòèðîâîê:
for(column=0; column<currencies_count; column++)
{
for(int row=0; row<bid_row_count; row++)
{
set_cell_attributes(row+1,column+1,InfoLeftShift+currency_x[column+1]+3,InfoTopShift+(row+1)*FontSize*2,LightCyan,FontSize);
}
}
// Èíèöèàëèçèðóåì ïåðâóþ êîëîíêó äëÿ âûâîäà íàçâàíèé ÒÔ:
for(int tf_index=0; tf_index<timeframes_count; tf_index++)
{
set_cell_attributes(tf_index+1+bid_row_count,0,InfoLeftShift+3,InfoTopShift+10+(tf_index+1+bid_row_count)*FontSize*2,LightCyan,FontSize);
set_cell_text(tf_index+1+bid_row_count,0,"%"+timeframes[tf_index]+":",Silver);
}
// Èíèöèàëèçèðóåì ïåðâóþ êîëîíêó äëÿ âûâîäà äîïîëíèòåëüíûõ ïîëåé:
for(int add_index=0; add_index<bid_row_count; add_index++)
{
set_cell_attributes(add_index+1,0,InfoLeftShift+3,InfoTopShift+(add_index+1)*FontSize*2,LightCyan,FontSize);
set_cell_text(add_index+1,0,columns[add_index],Silver);
}
// Èíèöèàëèçèðóåì ÿ÷åéêè äëÿ âûâîäà èíôîðìàöèè ïî èíñòðóìåíòàì:
for(tf_index=0; tf_index<timeframes_count; tf_index++)
{
for(int curr_index=0; curr_index<currencies_count; curr_index++)
{
set_cell_attributes(tf_index+1+bid_row_count,curr_index+1,InfoLeftShift+currency_x[curr_index+1],InfoTopShift+10+(tf_index+1+bid_row_count)*FontSize*2,LightCyan,FontSize);
}
}
}
//---------------------------------------------------------------------
// Ïîëó÷åíèå öâåòà â çàâèñèìîñòè îò íàçâàíèÿ èíñòðóìåíòà:
//---------------------------------------------------------------------
color get_currency_color(string _currency)
{
int i;
for(i=0; i<currencies_count; i++)
{
if(StringFind(currencies[i],_currency)!=-1)
{
if(StringFind(_currency,"GOLD")!=-1)
return(Gold);
else if(StringFind(_currency,"JPY")!=-1)
return(NavajoWhite);
else if(StringFind(_currency,"EUR")!=-1)
return(DeepSkyBlue);
else if(StringFind(_currency,"GBP")!=-1)
return(DeepSkyBlue);
else if(StringFind(_currency,"QM")!=-1)
return(Brown);
else if(StringFind(_currency,"ES")!=-1)
return(LightSalmon);
else if(StringFind(_currency,"NQ")!=-1)
return(LightSalmon);
else if(StringFind(_currency,"CHF")!=-1)
return(SpringGreen);
else if(StringFind(_currency,"CAD")!=-1)
return(SpringGreen);
else if(StringFind(_currency,"AUD")!=-1)
return(GreenYellow);
else if(StringFind(_currency,"NZD")!=-1)
return(GreenYellow);
return(Silver);
}
}
return(Silver);
}
//---------------------------------------------------------------------
// Ïðîâåðêà íàïðàâëåíèÿ òðåíäà ïî MACD:
//---------------------------------------------------------------------
// Âîçâðàùàåò:
// TREND_UP - òðåíä âåðõ;
// NO_TREND - òðåíä íåîïðåäåëåí;
// TREND_DN - òðåíä âíèç;
//---------------------------------------------------------------------
int get_trend_direction_MACD(string _symbol,int _timeframe,int _fast_ma_period,int _slow_ma_period)
{
HideTestIndicators(true);
double macd_value=iMACD(_symbol,_timeframe,_fast_ma_period,_slow_ma_period,1,PRICE_CLOSE,MODE_MAIN,0);
HideTestIndicators(false);
if(NormalizeDouble(macd_value,4)>0.0001)
return(TREND_UP);
if(NormalizeDouble(macd_value,4)<-0.0001)
return(TREND_DN);
return(NO_TREND);
}
//---------------------------------------------------------------------
// Ïðîâåðêà íàïðàâëåíèÿ òðåíäà ïî RSI:
//---------------------------------------------------------------------
// Âîçâðàùàåò:
// TREND_UP - òðåíä âåðõ;
// NO_TREND - òðåíä íåîïðåäåëåí;
// TREND_DN - òðåíä âíèç;
//---------------------------------------------------------------------
int get_trend_direction_RSI(string _symbol,int _timeframe,int _period)
{
HideTestIndicators(true);
double macd_value=iRSI(_symbol,_timeframe,_period,PRICE_CLOSE,0);
HideTestIndicators(false);
if(NormalizeDouble(macd_value,4)>50.0)
return(TREND_UP);
if(NormalizeDouble(macd_value,4)<50.0)
return(TREND_DN);
return(NO_TREND);
}
//---------------------------------------------------------------------
// Ïðîâåðêà íàïðàâëåíèÿ òðåíäà ïî EMA8 è SMA89 (ðûíî÷íûé ðèòì):
//---------------------------------------------------------------------
// Âîçâðàùàåò:
// TREND_UP - òðåíä âåðõ;
// NO_TREND - òðåíä íåîïðåäåëåí;
// TREND_DN - òðåíä âíèç;
//---------------------------------------------------------------------
int get_trend_direction_MarketRithm(string _symbol,int _timeframe,int _fast_ma_period,int _slow_ma_period)
{
int market_rithm=0;
HideTestIndicators(true);
double price_value=NormalizeDouble(iClose(_symbol,_timeframe,1),Digits);
double fast_ma_value = NormalizeDouble( iMA( _symbol, _timeframe, _fast_ma_period, 0, MODE_EMA, PRICE_CLOSE, 1 ), Digits );
double slow_ma_value = NormalizeDouble( iMA( _symbol, _timeframe, _slow_ma_period, 0, MODE_SMA, PRICE_CLOSE, 1 ), Digits );
HideTestIndicators(false);
if(price_value>slow_ma_value)
{
market_rithm++;
}
if(fast_ma_value>fast_ma_value)
{
market_rithm++;
}
if(price_value<slow_ma_value)
{
market_rithm--;
}
if(fast_ma_value<fast_ma_value)
{
market_rithm--;
}
if(market_rithm>=1)
return(TREND_UP);
if(market_rithm<=-1)
return(TREND_DN);
return(NO_TREND);
}
//---------------------------------------------------------------------
// Ïðîâåðêà íàïðàâëåíèÿ òðåíäà:
//---------------------------------------------------------------------
// Âîçâðàùàåò:
// TREND_UP - òðåíä âåðõ;
// NO_TREND - òðåíä íåîïðåäåëåí;
// TREND_DN - òðåíä âíèç;
//---------------------------------------------------------------------
int TrendDetector(int _mode,string _symbol,int _timeframe,int _fast_ma_period,int _slow_ma_period)
{
int trend_direction=NO_TREND;
switch(_mode)
{
case 0: // 0 - ïî MACD
trend_direction=get_trend_direction_MACD(_symbol,_timeframe,_fast_ma_period,_slow_ma_period);
break;
case 1: // 1 - ïî ìóâèíãó è òåêóùåìó áàðó ( ïî çàêðûòèþ )
break;
case 2: // 2 - ïî äâóì ìóâèíãàì
trend_direction=get_trend_direction_MarketRithm(_symbol,_timeframe,_fast_ma_period,_slow_ma_period);
break;
case 3: // 3 - ïî WPR
break;
case 4: // 4 - ïî RSI(14)
trend_direction=get_trend_direction_RSI(_symbol,_timeframe,14);
break;
default:
break;
}
return(trend_direction);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Âåðñèÿ : 10.10.2008 |
//| Îïèñàíèå : Ïåðåíîñ âåùåñòâåííûõ ÷èñåë èç ñòðîêè â ìàññèâ |
//+----------------------------------------------------------------------------+
//| Ïàðàìåòðû: |
//| st - ñòðîêà âåùåñòâåííûõ ÷èñåë ÷åðåç òî÷êó ñ çàïÿòîé |
//| ad - ìàññèâ âåùåñòâåííûõ ÷èñåë |
//+----------------------------------------------------------------------------+
//| Âîçâðàò: |
//| Êîëè÷åñòâî ýëåìåíòîâ â ìàññèâå |
//+----------------------------------------------------------------------------+
int
StringToArrayString(string st,string &ad[],string _delimiter=";")
{
int i=0,np;
string stp;
ArrayResize(ad,0);
while(StringLen(st)>0)
{
np=StringFind(st,_delimiter);
if(np<0)
{
stp=st;
st="";
} else {
stp=StringSubstr(st,0,np);
st=StringSubstr(st,np+1);
}
i++;
ArrayResize(ad,i);
ad[i-1]=StringTrimLeft(stp);
}
return(ArraySize(ad));
}
//---------------------------------------------------------------------
// Ïîëó÷åíèå öâåòà â çàâèñèìîñòè îò çíàêà ÷èñëà:
//---------------------------------------------------------------------
color
get_number_color(double _precision,double _number,color _plus,color _minus,color _null)
{
if(_number>_precision)
{
return(_plus);
}
if(_number<(-_precision))
{
return(_minus);
}
return(_null);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---